diff --git a/source/comply/data-retention-policy.rst b/source/comply/data-retention-policy.rst index d5b5fa4db3d..69976be30fb 100644 --- a/source/comply/data-retention-policy.rst +++ b/source/comply/data-retention-policy.rst @@ -5,23 +5,40 @@ Data Retention Policy (E20) By default, Mattermost stores all message history providing an unlimited search history to admins and end users. -In Mattermost Enterprise E20, you can set a custom policy to manage how long messages and file uploads are kept in Mattermost channels and direct messages. +In Mattermost Enterprise E20, you can set a global retention policy as well as custom retention policies to manage how long messages and file uploads are kept in Mattermost channels and Direct Messages .. warning:: - Once a message or a file is deleted, the action is irreversible. Please use caution when setting up a custom data retention policy. + Once a message or a file is deleted, the action is irreversible. Please use caution when setting up global or custom data retention policies. -Configuring a Data Retention Policy ------------------------------------- +Configuring a Global Data Retention Policy +------------------------------------------- -To set a custom data retention policy: +To set a global data retention policy in Mattermost v5.38 and later: -1. Go to **System Console > Compliance > Data Retention Policy**. -2. Select a **Message Retention** option. When a time is specified, messages, including file attachments, older than the duration you set will be deleted at the specified time. The minimum retention period is one day. -3. Select a **File Retention** option. When a time is specified uploaded files which are older than the duration you set will be deleted from your file storage system (either from your local disk or your Amazon S3 service as specified in **System Console > Environment > File Storage** at the specified time. The minimum retention period is one day. -4. Set the start time of the daily scheduled data retention job. Choose a time when fewer people are using your system. Must be a 24-hour time stamp in the form HH:MM. +1. Go to **System Console > Compliance > Data Retention Policies**. +2. Select **Edit** from the menu located to the right of the **Global retention policy** table. +3. Specify a global retention policy for channel messages and Direct Messages by selecting a **Channel & direct message retention** option from the dropdown, then set how long to keep those messages. When a time is set, messages and file attachments older than the duration you set will be deleted. The minimum retention period is one day. +4. Select a **File retention** option from the dropdown. Set the number of days or ears to keep files. When a time is set, uploaded files which are older than the duration you set will be deleted from your file storage system (either from your local disk or your Amazon S3 service as specified in **System Console > Environment > File Storage**. The minimum retention period is one day. The global file policy deletes all files regardless of whether they're in a direct message, private, or public channel. +5. Under the **Policy log** section, select **Edit** to specify the start time of the daily scheduled data retention job. Choose a time when fewer people are using your system. -Save the settings and restart your server. Messages and files older than the duration you set will be deleted at the specified server time, if applicable. +Select **Save**. Messages and files older than the duration you set will be deleted at the specified server time, as applicable. +Configuring a Custom Data Retention Policy +------------------------------------------- + +To set a custom data retention policy in Mattermost v5.38 and later: + +1. Go to **System Console > Compliance > Data Retention Policies**. +2. Select **Add policy** to the right of the **Custom retention policies** table. +3. Specify a name for your policy. +4. Specify a custom retention policy for channel and Direct Messages by selecting a **Channel & direct message retention** option from the dropdown, then set how long to keep uploaded files. When a time is set, messages and file attachments older than the duration you set will be deleted. The minimum retention period is one day. +5. Assign teams and channels to this policy by selecting **Add teams** and searching for a specific team, or by selecting **Add channels** and searching for a specific channel. If only teams are specified, all channels for selected teams will be included in the a policy. +6. Under the **Policy log** section, select **Edit** to specify the start time of the daily scheduled data retention job. Choose a time when fewer people are using your system. If a time is already set for a global retention policy, then the same time applies to custom data retention policies. + +Save the settings. Messages and files older than the duration you set will be deleted at the specified server time, as applicable. + +Running a Deletion Job Manually +-------------------------------- You can also run the deletion job manually at any time by selecting **Run Deletion Job Now** in **System Console > Compliance > Data Retention Policy**. .. note:: @@ -33,12 +50,14 @@ Frequently Asked Questions (FAQs) What happens when a message is deleted? ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -The message is removed from the Mattermost user interface and deleted from the ``Posts`` table. The message is no longer searchable and cannot be retrieved in pinned posts or saved posts lists. +The message is removed from the Mattermost user interface and deleted from the ``Posts`` table. The message is no longer searchable and cannot be retrieved in pinned posts or saved posts lists. Replies that did not exceed the message duration are still displayed in the user interface. However, further replies are no longer possible. -What happens when a file is deleted? -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +If there was a file attached to the message, it will be removed from the user interface only. + +What happens when a file is deleted by the file retention policy? +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The file attachment is removed from the Mattermost user interface, deleted from the ``FileInfo`` table, and from your local disk or Amazon S3 service as specified in **System Console > Environment > File Storage**. @@ -59,14 +78,6 @@ Why do I see ``Pending`` in the deletion job table with no details? This usually means another data retention job is in progress. You can verify this in the deletion job table in **System Console > Compliance > Data Retention Policy**. -If no jobs are in progress and the job has stayed ``Pending`` for more than 2 minutes, then you may not have restarted your server after enabling the data retention policy. Restart your server and try again. - -How do I set a custom policy per team or channel? -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Setting custom policies for each team and channel are in the roadmap but not yet supported. - -If you are interested in this feature, consider upvoting the `existing feature proposal `__ and share your feedback in the comments. How is data retention handled in the mobile apps? ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/source/conf.py b/source/conf.py index 545d4196c96..f71a7013deb 100644 --- a/source/conf.py +++ b/source/conf.py @@ -340,9 +340,9 @@ def setup(app): # built documents. # # The short X.Y version. -# version = '5.37' +# version = '5.38' # The full version, including alpha/beta/rc tags. -# release = '5.37' +# release = '5.38' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. diff --git a/source/configure/configuration-settings.rst b/source/configure/configuration-settings.rst index b6c0ebc1b60..2ead05567db 100644 --- a/source/configure/configuration-settings.rst +++ b/source/configure/configuration-settings.rst @@ -1,14 +1,15 @@ Configuration Settings ====================== -.. note:: - The order of the configuration settings below are reflective of a reorganization of the System Console in version 5.12 released on June 16th, 2019. To view the configuration settings based on the organization of the System Console in versions prior to version 5.12, please see `this documentation `_ instead. - Mattermost configuration settings are maintained in the ``config.json`` configuration file, located in the ``mattermost/config`` directory. You can modify the configuration file using the System Console, or by using a text editor to modify it directly. -Mattermost must have write permissions to ``config.json``, otherwise changes made in the System Console will have no effect. +.. important:: + + Mattermost must have write permissions to ``config.json``, otherwise changes made in the System Console will have no effect. + + On new installations from v5.14, the ``default.json`` file used to create the initial ``config.json`` has been removed from the binary and replaced with a build step that generates a fresh ``config.json``. This is to ensure the initial configuration file has all the correct defaults provided in the server code. Existing ``config.json`` files are not affected by this change. -On new installations starting from v5.14, the ``default.json`` file used to create the initial ``config.json`` has been removed from the binary and replaced with a build step that generates a fresh ``config.json``. This is to ensure the initial configuration file has all the correct defaults provided in the server code. Existing ``config.json`` files are not affected by this change. + From Mattermost v5.38 (released August 16, 2021), the “config watcher” (the mechanism that automatically reloads the ``config.json`` file) has been deprecated in favor of the mmctl command `mmctl config reload `__ that must be run to apply configuration changes after they're made. This change will improve configuration performance and robustness. Configuration in Database -------------------------- @@ -1274,7 +1275,7 @@ Where: - Advanced logging supports hot-reloading of logger configuration. +----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ -| This feature’s ``config.json`` setting is ``LogSettings.AdvancedLoggingConfig`` which can contain a filespec to another config file, a database DSN, or JSON. | +| This feature’s ``config.json`` setting is ``LogSettings.AdvancedLoggingConfig`` which can contain a filespec to another config file, a database DSN, or JSON. | +----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ Options outlined in `this text file `__ are described in the following table. @@ -1380,7 +1381,7 @@ Options outlined in `this text file ` for a sample configuration file. +See the :download:`Advanced Logging Options Sample JSON ZIP file <../samples/advanced-logging-options-sample-json.zip>` for a sample configuration file. Standard Logging ~~~~~~~~~~~~~~~~ @@ -1436,7 +1437,7 @@ Changes to this setting require a server restart before taking effect. Colorize plain text console logs ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -This setting can only be changed from ``config.json`` file, it cannot be changed from the System Console user interface. +This setting can only be changed from ``config.json`` file, it cannot be changed from the System Console user interface. **True**: When logged events are output to the console as plain text, colorize log levels details. @@ -3834,9 +3835,22 @@ Signature Public Key Files In addition to the Mattermost plugin signing key built into the server, each public key specified here is trusted to validate plugin signatures. -+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ -| This feature's ``config.json`` setting is ``"SignaturePublicKeyFiles": {}`` with with string array input consisting of contents that are relative or absolute paths to signature files. | -+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ ++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| This feature's ``config.json`` setting is ``"SignaturePublicKeyFiles": {}`` with string array input consisting of contents that are relative or absolute paths to signature files. | ++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + +Chimera OAuth Proxy URL +^^^^^^^^^^^^^^^^^^^^^^^ + +Specify the `Chimera `__ URL used by Mattermost plugins to connect with pre-created OAuth applications. + ++-------------------------------------------------------------------------------------------------------------------------+ +| This feature's ``config.json`` setting is ``"ChimeraOAuthProxyUrl": {}`` with string input. | ++-------------------------------------------------------------------------------------------------------------------------+ + +.. note:: + + This setting isn't available in the System Console and can only be set in ``config.json``. Autolink ~~~~~~~~ @@ -5186,7 +5200,7 @@ Replica Lag Settings Specifies a connection string and user-defined SQL queries on the database to measure replica lag for a single replica instance. These settings monitor absolute lag based on binlog distance/transaction queue length, and the time taken for the replica to catch up. +-------------------------------------------------------------------------------------------------------+ -| This feature’s ``config.json`` setting is ``"ReplicaLagSettings": []`` with string array input. | +| This feature’s ``config.json`` setting is ``"ReplicaLagSettings": []`` with string array input. | +-------------------------------------------------------------------------------------------------------+ String array input consists of: @@ -5412,7 +5426,7 @@ Enable Reliable Websockets Enable this setting to make websocket messages more reliable by buffering messages during a connection loss and then re-transmitting all unsent messages when the connection is revived. +-------------------------------------------------------------------------------------------------------------------------------------------------------------------+ -| This feature's ``config.json`` setting is ``"EnableReliableWebsockets": false`` with options ``true`` and ``false``. | +| This feature's ``config.json`` setting is ``"EnableReliableWebsockets": true`` with options ``true`` and ``false``. | +-------------------------------------------------------------------------------------------------------------------------------------------------------------------+ Remote Clusters diff --git a/source/guides/setup-onboard-manage-comply.rst b/source/guides/setup-onboard-manage-comply.rst index e6e778814a7..dea0ef489fd 100644 --- a/source/guides/setup-onboard-manage-comply.rst +++ b/source/guides/setup-onboard-manage-comply.rst @@ -127,6 +127,7 @@ Cloud Workspaces :maxdepth: 1 :glob: + /manage/cloud-team-channel.rst /manage/cloud-billing.rst /manage/cloud-reporting.rst /manage/cloud-user-satisfaction-surveys.rst @@ -159,4 +160,4 @@ Cloud Workspaces /comply/cloud-compliance-and-oversight.rst /comply/cloud-compliance-export.rst /comply/cloud-data-retention-policy.rst - /comply/cloud-custom-terms-of-service.rst \ No newline at end of file + /comply/cloud-custom-terms-of-service.rst diff --git a/source/install/self-managed-changelog.md b/source/install/self-managed-changelog.md index c52dbf91a0f..28d3d26911a 100644 --- a/source/install/self-managed-changelog.md +++ b/source/install/self-managed-changelog.md @@ -5,13 +5,158 @@ This changelog summarizes updates to [Mattermost Team Edition](https://mattermos Also see [changelog in progress](https://bit.ly/2nK3cVf) for the next release. Lastest Mattermost Releases: +- [Release v5.38 - Feature Release](#release-v5-38-feature-release) - [Release v5.37 - Extended Support Release](#release-v5-37-extended-support-release) - [Release v5.36 - Feature Release](#release-v5-36-feature-release) - [Release v5.35 - Feature Release](#release-v5-35-feature-release) - [Release v5.34 - Feature Release](#release-v5-34-feature-release) -- [Release v5.33 - Feature Release](#release-v5-33-feature-release) -- [Release v5.32 - Feature Release](#release-v5-32-feature-release) -- [Release v5.31 - Extended Support Release](#release-v5-31-esr) +- [Release v5.31 - ESR](#release-v5-31-esr) + +## Release v5.38 - [Feature Release](https://docs.mattermost.com/administration/release-definitions.html#feature-release) + +**Release Day: 2021-08-16** + +Mattermost v5.38.0 contains low to medium level security fixes. [Upgrading](https://docs.mattermost.com/administration/upgrade.html) to this release is recommended. Details will be posted on our [security updates page](https://mattermost.com/security-updates/) 30 days after release as per the [Mattermost Responsible Disclosure Policy](https://mattermost.org/responsible-disclosure-policy/). + +### Deprecations + - The “config watcher” (the mechanism that automatically reloads the ``config.json`` file) has been removed in favor of the ``mmctl config`` command that will need to be run to apply configuration changes after they are made. This change improves configuration performance and robustness. + +### Important Upgrade Notes + - v5.38 adds fixes for some of the incorrect mention counts and unreads around threads and channels since the introduction of Collapsed Reply Threads (Beta). This fix is done through a SQL migration, and it may take several minutes to complete for large databases. The ``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. + - Focalboard v0.8.0 (released with Mattermost v5.38.0) requires Mattermost v5.37 due to the new database connection system. + +**IMPORTANT:** If you upgrade from a release earlier than v5.37, please read the other [Important Upgrade Notes](https://docs.mattermost.com/upgrade/important-upgrade-notes.html). + +### Highlights + +#### Granular Data Retention Policies (Enterprise E20) + - A ``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](https://mattermost.atlassian.net/browse/MM-36574). + +#### Enhanced User Onboarding Experience + - To help new users get started with Mattermost, new Getting Started steps have been added to the onboarding experience. These steps help users to complete their profile, name their teams, configure desktop notifications, and invite others to join their team. Additionally, once the onboarding is complete, users are provided with helpful tips to get started with channels, plugins, and more. + +#### Playbooks Updates + - ``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. + +#### Focalboard Updates + - Added created-by property and improved performance with shared database connections. Focalboard 0.8.0 requires Mattermost v5.37+ due to a new database connection system. + +### Improvements + +#### User Interface (UI) + - Upgraded German language back to an official language. + - Markdown formatting is now stripped from push notifications. + - Enabled the **Set Status** button if the custom status hasn't changed from currently set status. + - Improved default rendering of images inserted via the GIF picker. + - Small text changes were added to Direct and Group Message menus: **Mute channel** and **Edit Channel Header** now reads as **Mute Conversation** and **Edit Conversation Header**. + +#### Performance + - Improved performance of components that show reactions on posts. + - Improved performance of certain components when viewing non-Direct Message channels. + - Added minor improvements to performance of messages posted in the right-hand side. + - Improved typing performance in affected environments by reducing the frequency in which drafts are saved. + +#### Integrations + - Added icons to apps in the Marketplace. + - Apps can now add arbitrary markdown in between fields on forms. + - Added support for markdown in apps forms, interactive dialogs field descriptions, errors, and slash commands. + - Improved user and channel selector for app commands. + - Added support for ``react-intl`` and ```` usage in plugins. + - Added plugin API methods for user access tokens and OAuth apps. + +#### Administration + - Added a new feature to archive and unarchive teams through **System Console** > **Teams**. + +### Bug Fixes + - Fixed an issue where the "Find channel" channel switcher text overflowed beyond the button for some languages. + - Fixed an issue where inter-plugin requests without a body didn't work. + - Fixed an issue with opening a dialog from an interactive message when returning an empty response. + - Fixed an issue where the **Add Members** modal was incorrectly themed on the Mattermost Dark Theme. + - Fixed a panic in the ``getPrevTrialLicense`` API request when loading the System Console on Team Edition. + - Fixed an issue where admin advisor notifications were accidentally re-enabled in a previous release. + - Fixed various bugs for the Collapsed Reply Threads (Beta) feature, including: + - Fixed an issue where an error occurred while following a thread with no replies. + - Fixed an issue where ``reply_count`` of 0 was always returned for GET single Post on ``/posts/`` API. + - Fixed an issue where following a single message returned a status 500. + - Fixed an issue where when replying in a thread after unfollowing it, the thread was not auto-followed again. + - Fixed an issue where when enabling Collapsed Reply Threads, channels that had no new activity were showing as unread. + - Fixed an issue with thread unreads when the feature was enabled by a user. + - Fixed an issue where self replies were marking threads as unread. + - Unread threads are now correctly displayed on app load for teams in the sidebar when Collapsed Reply Threads feature is enabled. + - Fixed an issue where "Thread" in the thread viewer was displayed vertically in some languages. + - Fixed an issue where opening global threads containing a root post markdown image crashed the app. + - Fixed an issue where the app crashed when switching to the Threads view after leaving a channel. + - Fixed an issue where replying to a thread from the global threads screen marked the channel as read. + - The **Mark all as unread** button is now no longer disabled for Collapsed Reply Threads. + - Fixed root posts not being shown as followed for the post creator after receiving the first reply that affected servers with Collapsed Reply Threads enabled and database read replicas configured. + +### 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. + +#### Changes to Team Edition and Enterprise Edition: + - Under ``PluginSettings`` in ``config.json``: + - Added ``ChimeraOAuthProxyURL`` to allow specifying Chimera URL that can be used by plugins to connect with pre-created OAuth applications. + - The config setting ``EnableReliableWebSockets`` now defaults to ``true``. + +### API Changes + - Added ``CreateChannelSidebarCategory``, ``GetChannelSidebarCategories`` and ``UpdateChannelSidebarCategories`` to the Plugin API. + - Add a new Plugin API method that allows files to register dropdown menu actions. + +### Go Version + - v5.38 is built with Go ``1.16.0``. + +### Open Source Components + - Added ``classnames`` and ``react-window`` to https://github.com/mattermost/mattermost-webapp/. + - Added ``@react-native-community/datetimepicker``, ``array.prototype.flat``, and ``base-64`` to https://github.com/mattermost/mattermost-mobile/. + +### Upcoming Deprecations in Mattermost v6.0 + +The following deprecations are planned for the Mattermost v6.0 release, which is scheduled for 2021/09/15. This list is subject to change prior to the release. + +1. [Legacy Command Line Tools](https://docs.mattermost.com/manage/command-line-tools.html). All commands have been fully replaced by [mmctl](https://docs.mattermost.com/manage/mmctl-command-line-tool.html) and new commands have been added over the last few months, making this tool a full and robust replacement. + +2. [Slack Import via the web app](https://docs.mattermost.com/onboard/migrating-to-mattermost.html#migrating-from-slack-using-the-mattermost-web-app). The Slack import tool accessible via the Team Setting menu is being replaced by the [mmetl](https://docs.mattermost.com/onboard/migrating-to-mattermost.html#migrating-from-slack-using-the-mattermost-mmetl-tool-and-bulk-import) tool that is much more comprehensive for the types of data it can assist in uploading. + +3. 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](https://www.mysql.com/support/eol-notice.html). + +4. Elasticsearch 5 and 6 - [versions 5.x reached EOL in March of 2019, and versions 6.x reached EOL in November 2020](https://www.elastic.co/support/eol). Our minimal supported version with Mattermost v6.0 will be Elasticsearch version 7.0. + +5. Windows 7 reached [EOL in January 2020](https://support.microsoft.com/en-us/windows/windows-7-support-ended-on-january-14-2020-b75d4580-2cc7-895a-2c9c-1466d9a53962). We will no longer provide support for Mattermost Desktop App issues on Windows 7. + +6. [DisableLegacyMFAEndpoint](https://docs.mattermost.com/configure/configuration-settings.html#disable-legacy-mfa-api-endpoint) configuration setting. + +7. [Experimental Timezone](https://docs.mattermost.com/configure/configuration-settings.html#timezone) configuration setting. + +8. 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](https://mattermost.com/blog/custom-collapsible-channel-categories/) among many other channel organization features. The settings being deprecated include: + + - [EnableLegacySidebar](https://docs.mattermost.com/configure/configuration-settings.html#enable-legacy-sidebar) + - [ExperimentalTownSquareIsReadOnly](https://docs.mattermost.com/configure/configuration-settings.html#town-square-is-read-only-experimental) + - [ExperimentalHideTownSquareinLHS](https://docs.mattermost.com/configure/configuration-settings.html#town-square-is-hidden-in-left-hand-sidebar-experimental) + - [EnableXToLeaveChannelsFromLHS](https://docs.mattermost.com/configure/configuration-settings.html#enable-x-to-leave-channels-from-left-hand-sidebar-experimental) + - [CloseUnusedDirectMessages](https://docs.mattermost.com/configure/configuration-settings.html#autoclose-direct-messages-in-sidebar-experimental) + - [ExperimentalChannelOrganization](https://docs.mattermost.com/configure/configuration-settings.html#sidebar-organization) + - [ExperimentalChannelSidebarOrganization](https://docs.mattermost.com/configure/configuration-settings.html#experimental-sidebar-features) + +9. [All configuration settings previously marked as “Deprecated”](https://docs.mattermost.com/configure/configuration-settings.html#deprecated-configuration-settings). + +10. Changes to ``mattermost-server/model`` for naming consistency. + +### Known Issues + - Deleted posts get displayed in channels without new activity after the data retention job is run [MM-36574](https://mattermost.atlassian.net/browse/MM-36574). + - Known issues related to the new collapsed reply threads (Beta) are [listed here](https://docs.mattermost.com/messaging/organizing-conversations.html#known-issues). + - Adding an at-mention at the start of a post draft and pressing the leftwards or rightwards arrow can clear the post draft and the undo history [MM-33823](https://mattermost.atlassian.net/browse/MM-33823). + - Emoji counter in the center channel doesn't always update immediately when a reaction is added in the right-hand side [MM-31994](https://mattermost.atlassian.net/browse/MM-31994). + - Fields on the right column in a message attachment render unevenly [MM-36943](https://mattermost.atlassian.net/browse/MM-36943). + - Pinned posts are no longer highlighted. + - Google login fails on the Classic mobile apps. + - Status may sometimes get stuck as **Away** or **Offline** in High Availability mode with IP Hash turned off. + - Searching stop words in quotation marks with Elasticsearch enabled returns more than just the searched terms. + - The team sidebar on the desktop app does not update when channels have been read on mobile. + - Slack import through the CLI fails if email notifications are enabled. + - Push notifications don't always clear on iOS when running Mattermost in High Availability mode. + +### Contributors + - [abdulsmapara](https://github.com/abdulsmapara), [abdusabri](https://github.com/abdusabri), [Adovenmuehle](https://github.com/Adovenmuehle), [aeomin](https://github.com/aeomin), [agarciamontoro](https://github.com/agarciamontoro), [agnivade](https://github.com/agnivade), [ahmaddanialmohd](https://github.com/ahmaddanialmohd), [aidapira](https://github.com/aidapira), [ali-farooq0](https://github.com/ali-farooq0), [amyblais](https://github.com/amyblais), [amynicol1985](https://github.com/amynicol1985), [angeloskyratzakos](https://github.com/angeloskyratzakos), [ankallio](https://github.com/ankallio), [arvinDarmawan](https://github.com/arvinDarmawan), [asaadmahmood](https://github.com/asaadmahmood), [ashishbhate](https://github.com/ashishbhate), [AugustasV](https://github.com/AugustasV), [avasconcelos114](https://github.com/avasconcelos114), [BaaaZen](https://github.com/BaaaZen), [bbodenmiller](https://github.com/bbodenmiller), [bill2004158](https://github.com/bill2004158), [bradjcoughlin](https://github.com/bradjcoughlin), [calebroseland](https://github.com/calebroseland), [catalintomai](https://github.com/catalintomai), [chakatz](https://github.com/chakatz), [chenilim](https://github.com/chenilim), [chikei](https://github.com/chikei), [coltoneshaw](https://github.com/coltoneshaw), [cpanato](https://github.com/cpanato), [cpoile](https://github.com/cpoile), [crspeller](https://github.com/crspeller), [ctlaltdieliet](https://github.com/ctlaltdieliet), [cwarnermm](https://github.com/cwarnermm), [danielhelfand](https://github.com/danielhelfand), [DanielSz50](https://github.com/DanielSz50), [dantepippi](https://github.com/dantepippi), [darkLord19](https://github.com/darkLord19), [Dartui](https://github.com/Dartui), [dbejanishvili](https://github.com/dbejanishvili), [deanwhillier](https://github.com/deanwhillier), [denniskamp](https://github.com/denniskamp), [devinbinnie](https://github.com/devinbinnie), [ditsemto](https://github.com/ditsemto), [djanda97](https://github.com/djanda97), [dpanic](https://github.com/dpanic), [emilyhollinger](https://github.com/emilyhollinger), [enahum](https://github.com/enahum), [enelson720](https://github.com/enelson720), [ericjaystevens](https://github.com/ericjaystevens), [esadur](https://github.com/esadur), [esethna](https://github.com/esethna), [ethervoid](https://github.com/ethervoid), [ewwollesen](https://github.com/ewwollesen), [faase](https://github.com/faase), [fakela](https://github.com/fakela), [flynbit](https://github.com/flynbit), [fmunshi](https://github.com/fmunshi), [Francois-D](https://github.com/Francois-D), [gabrieljackson](https://github.com/gabrieljackson), [ghasrfakhri](https://github.com/ghasrfakhri), [gigawhitlocks](https://github.com/gigawhitlocks), [grubbins](https://github.com/grubbins), [gruceqq](https://translate.mattermost.com/user/gruceqq/), [hahmadia](https://github.com/hahmadia), [hannaparks](https://github.com/hannaparks), [hanzei](https://github.com/hanzei), [harshilsharma63](https://github.com/harshilsharma63), [hectorskypl](https://github.com/hectorskypl), [hhhhugi](https://github.com/hhhhugi), [hmhealey](https://github.com/hmhealey), [hryuk](https://github.com/hryuk), [ialorro](https://github.com/ialorro), [icelander](https://github.com/icelander), [iomodo](https://github.com/iomodo), [isacikgoz](https://github.com/isacikgoz), [it33](https://github.com/it33), [jakubnovak998](https://github.com/jakubnovak998), [jasonblais](https://github.com/jasonblais), [javimox](https://github.com/javimox), [jaydeland](https://github.com/jaydeland), [jespino](https://github.com/jespino), [jfrerich](https://github.com/jfrerich), [johnsonbrothers](https://github.com/johnsonbrothers), [josephbaylon](https://github.com/josephbaylon), [joshuabezaleel](https://github.com/joshuabezaleel), [jprusch](https://github.com/jprusch), [jseiser](https://github.com/jseiser), [JtheBAB](https://github.com/JtheBAB), [Jukie](https://github.com/Jukie), [jupenur](https://github.com/jupenur), [justinegeffen](https://github.com/justinegeffen), [jwilander](https://github.com/jwilander), [kaakaa](https://github.com/kaakaa), [kamre](https://github.com/kamre), [kayazeren](https://github.com/kayazeren), [kayron8](https://github.com/kayron8), [khos2ow](https://github.com/khos2ow), [kirkjaa](https://github.com/kirkjaa), [larkox](https://github.com/larkox), [levb](https://github.com/levb), [lfbrock](https://github.com/lfbrock), [lieut-data](https://github.com/lieut-data), [lindalumitchell](https://github.com/lindalumitchell), [lindy65](https://github.com/lindy65), [liusy182](https://github.com/liusy182), [Lyimmi](https://github.com/Lyimmi), [lynn915](https://github.com/lynn915), [M-ZubairAhmed](https://github.com/M-ZubairAhmed), [majdydaood](https://github.com/majdydaood), [marianunez](https://github.com/marianunez), [matthew.williams](https://translate.mattermost.com/user/matthew-w/), [metanerd](https://github.com/metanerd), [mgdelacroix](https://github.com/mgdelacroix), [michaelschiffmm](https://github.com/michaelschiffmm), [mickmister](https://github.com/mickmister), [migbot](https://github.com/migbot), [mlongo4290](https://github.com/mlongo4290), [mrckndt](https://github.com/mrckndt), [mustafayildirim](https://github.com/mustafayildirim), [N3rdP1um23](https://github.com/N3rdP1um23), [natalie-hub](https://github.com/natalie-hub), [nathanaelhoun](https://github.com/nathanaelhoun), [nevyangelova](https://github.com/nevyangelova), [nickmisasi](https://github.com/nickmisasi), [nicolailang](https://github.com/nicolailang), [nikolaizah](https://github.com/nikolaizah), [ofpiyush](https://github.com/ofpiyush), [openmohan](https://github.com/openmohan), [papanireal](https://github.com/papanireal),[phommasy](https://github.com/phommasy), [prapti](https://github.com/prapti), [qerosi](https://github.com/qerosi), [reflog](https://github.com/reflog), [rmatev](https://github.com/rmatev), [rodcorsi](https://github.com/rodcorsi), [ruzaq](https://github.com/ruzaq), [rvillablanca](https://github.com/rvillablanca), [sakaitsu](https://translate.mattermost.com/user/sakaitsu/), [saturninoabril](https://github.com/saturninoabril), [sbishel](https://github.com/sbishel), [scottjr632](https://github.com/scottjr632), [ShehryarShoukat96](https://github.com/ShehryarShoukat96), [shred86](https://github.com/shred86), [skaramanlis](https://github.com/skaramanlis), [sowmiyamuthuraman](https://github.com/sowmiyamuthuraman), [sridhar02](https://github.com/sridhar02), [srkgupta](https://github.com/srkgupta), [stevemudie](https://github.com/stevemudie), [streamer45](https://github.com/streamer45), [stylianosrigas](https://github.com/stylianosrigas), [sudheerDev](https://github.com/sudheerDev), [svelle](https://github.com/svelle), [Szymongib](https://github.com/Szymongib), [TheoVitkovskiy](https://github.com/TheoVitkovskiy), [thePanz](https://github.com/thePanz), [TQuock](https://github.com/TQuock), [TRUNGTar](https://github.com/TRUNGTar), [tsabi](https://translate.mattermost.com/user/tsabi/), [utkuufuk](https://github.com/utkuufuk), [Vars-07](https://github.com/Vars-07), [venhaus](https://github.com/venhaus), [vijaynag-bs](https://github.com/vijaynag-bs), [webchick](https://github.com/webchick), [wget](https://github.com/wget), [wiersgallak](https://github.com/wiersgallak), [wiggin77](https://github.com/wiggin77), [Willyfrog](https://github.com/Willyfrog), [yedamao](https://github.com/yedamao), [Yohannesseifu](https://github.com/Yohannesseifu), [YushiOMOTE](https://github.com/YushiOMOTE) ## Release v5.37 - [Extended Support Release](https://docs.mattermost.com/administration/extended-support-release.html) diff --git a/source/manage/cloud-team-and-channel.rst b/source/manage/cloud-team-and-channel.rst index 8bf5f336339..02717bc8391 100644 --- a/source/manage/cloud-team-and-channel.rst +++ b/source/manage/cloud-team-and-channel.rst @@ -21,6 +21,22 @@ Team Profile The name and description of the team. +System Admins can archive or unarchive the team from within **User Management > Teams > Team Management**. Archiving a team makes its contents inaccessible for all users. All related information is archived, including posts from the database. Before archiving a team, we recommend that you perform a database backup. + +Archiving a Team +^^^^^^^^^^^^^^^^ + +Select **Archive Team**, then select **Save**. Select **Archive** when prompted to confirm the team archive. + +Alternatively, System Admins can use the mmctl ``mmctl team archive`` to archive teams. See the `mmctl product documentation `__ for details. + +Unarchiving a Team +^^^^^^^^^^^^^^^^^^ + +Select **Unarchive Team**, then select **Save**. + +Alternatively, System Admins can use the mmctl ``mmctl team restore`` to unarchive teams. See the `mmctl product documentation `__ for details. + Team Management ~~~~~~~~~~~~~~~ diff --git a/source/manage/team-channel-members.rst b/source/manage/team-channel-members.rst index 2f8c668c2cf..38d13cebf66 100644 --- a/source/manage/team-channel-members.rst +++ b/source/manage/team-channel-members.rst @@ -19,7 +19,23 @@ Select a team to view its configuration options. Team Profile ~~~~~~~~~~~~ -The name and description of the team. +The name and description of the team. + +System Admins can archive or unarchive the team from within **User Management > Teams > Team Management**. Archiving a team makes its contents inaccessible for all users. All related information is archived, including posts from the database. Before archiving a team, we recommend that you perform a database backup. + +Archiving a Team +^^^^^^^^^^^^^^^^ + +Select **Archive Team**, then select **Save**. Select **Archive** when prompted to confirm the team archive. + +Alternatively, System Admins can use the mmctl ``mmctl team archive`` to archive teams. See the `mmctl product documentation `__ for details. + +Unarchiving a Team +^^^^^^^^^^^^^^^^^^ + +Select **Unarchive Team**, then select **Save**. + +Alternatively, System Admins can use the mmctl ``mmctl team restore`` to archive teams. See the `mmctl product documentation `__ for details. Team Management ~~~~~~~~~~~~~~~ diff --git a/source/manage/telemetry.rst b/source/manage/telemetry.rst index 6231f78c43f..8839c2dbfbe 100644 --- a/source/manage/telemetry.rst +++ b/source/manage/telemetry.rst @@ -81,7 +81,7 @@ Server Configuration Settings **True/false (boolean)** value whether setting remains default (true) or non-default (false). **NOTE: No input data is used**: - **ServiceSettings**: bool SiteURL, bool WebsocketURL, bool TLSCertFile, bool TLSKeyFile, bool ReadTimeout, bool WriteTimeout,bool IdleTimeout, bool GoogleDeveloperKey, bool AllowCorsFrom, bool CorsExposedHeaders, bool AllowedUntrustedInternalConnections, bool GfycatApiKey, bool GfycatApiSecret, bool ManagedResourcePaths, bool CollapsedThreads; **TeamSettings**: bool SiteName, bool CustomBrandText, bool CustomDescriptionText, bool UserStatusAwayTimeout, bool ExperimentalPrimaryTeam; **DisplaySettings**: bool CustomUrlSchemes; **GuestAccountSettings**: bool RestrictCreationToDomains; **LogSettings**: bool FileLocation; **NotificationLogSettings**: bool FileLocation; **EmailSettings**: bool FeedbackName, bool FeedbackEmail, bool FeedbackOrganization, bool LoginButtonColor, bool LoginButtonBorderColor, bool LoginButtonTextColor, bool ImageProxyType, bool ImageProxyURL, bool ImageProxyOptions; **RateLimitSettings**: bool VaryByHeader; **SupportSettings**: bool TermsOfServiceLink, bool PrivacyPolicyLink, bool AboutLink, bool HelpLink, bool ReportAProblemLink, bool AppCustomURLSchemes, bool SupportEmail; **ThemeSettings**: bool DefaultTheme; **TimeZoneSettings**: bool SupportedTimezonesPath; **LdapSettings**: bool FirstNameAttribute, bool LastNameAttribute, bool EmailAttribute, bool UserNameAttribute, bool NicknameAttribute, bool IdAttribute, bool PositionAttribute, bool LoginFieldName, bool LoginButtonColor, bool LoginButtonBorderColor, bool LoginButtonTextColor, bool GroupFilter, bool GroupDisplayNameAttribute, bool GroupIdAttribute, bool GuestFilter, bool AdminFilter; **SamlSettings**: bool SignatureAlgorithm, bool CanonicalAlgorithm, bool ScopingIDPProviderId, bool ScopingIDPName, bool IdAttribute, bool GuestAttribute, bool FirstNameAttribute, bool LastNameAttribute, bool EmailAttribute, bool UserNameAttribute, bool NicknameAttribute, bool LocaleAttribute, bool PositionAttribute, bool LoginIdAttribute, bool LoginButtonText, bool LoginButtonColor, bool LoginButtonBorderColor, bool LoginButtonTextColor, bool AdminFilter; **NativeAppSettings**: bool AppDownloadLink, bool AndroidAppDownloadLink, bool IosAppDownloadLink; **WebrtcSettings** (only in v5.5 and earlier): bool StunURI, bool TurnURI; **ClusterSettings**: bool NetworkInterface, bool BindAddress, bool AdvertiseAddress; **MetricsSettings**: bool BlockProfileRate; **AnalyticsSettings**: bool MaxUsersForStatistics; **ExperimentalSettings** bool ClientSideCertCheck; **AnnouncementSettings**: bool BannerColor, bool BannerTextColor; **ElasticsearchSettings**: bool ConnectionUrl, bool Username, bool Password, bool IndexPrefix; **PluginSettings**: bool MarketplaceUrl, bool SignaturePublicKeyFiles; **MessageExportSettings**: bool GlobalRelaySettings.SmtpUsername, bool GlobalRelaySettings.SmtpPassword, bool GlobalRelaySettings.EmailAddress + **ServiceSettings**: bool SiteURL, bool WebsocketURL, bool TLSCertFile, bool TLSKeyFile, bool ReadTimeout, bool WriteTimeout,bool IdleTimeout, bool GoogleDeveloperKey, bool AllowCorsFrom, bool CorsExposedHeaders, bool AllowedUntrustedInternalConnections, bool GfycatApiKey, bool GfycatApiSecret, bool ManagedResourcePaths, bool CollapsedThreads; **TeamSettings**: bool SiteName, bool CustomBrandText, bool CustomDescriptionText, bool UserStatusAwayTimeout, bool ExperimentalPrimaryTeam; **DisplaySettings**: bool CustomUrlSchemes; **GuestAccountSettings**: bool RestrictCreationToDomains; **LogSettings**: bool FileLocation; **NotificationLogSettings**: bool FileLocation; **EmailSettings**: bool FeedbackName, bool FeedbackEmail, bool FeedbackOrganization, bool LoginButtonColor, bool LoginButtonBorderColor, bool LoginButtonTextColor, bool ImageProxyType, bool ImageProxyURL, bool ImageProxyOptions; **RateLimitSettings**: bool VaryByHeader; **SupportSettings**: bool TermsOfServiceLink, bool PrivacyPolicyLink, bool AboutLink, bool HelpLink, bool ReportAProblemLink, bool AppCustomURLSchemes, bool SupportEmail; **ThemeSettings**: bool DefaultTheme; **TimeZoneSettings**: bool SupportedTimezonesPath; **LdapSettings**: bool FirstNameAttribute, bool LastNameAttribute, bool EmailAttribute, bool UserNameAttribute, bool NicknameAttribute, bool IdAttribute, bool PositionAttribute, bool LoginFieldName, bool LoginButtonColor, bool LoginButtonBorderColor, bool LoginButtonTextColor, bool GroupFilter, bool GroupDisplayNameAttribute, bool GroupIdAttribute, bool GuestFilter, bool AdminFilter; **SamlSettings**: bool SignatureAlgorithm, bool CanonicalAlgorithm, bool ScopingIDPProviderId, bool ScopingIDPName, bool IdAttribute, bool GuestAttribute, bool FirstNameAttribute, bool LastNameAttribute, bool EmailAttribute, bool UserNameAttribute, bool NicknameAttribute, bool LocaleAttribute, bool PositionAttribute, bool LoginIdAttribute, bool LoginButtonText, bool LoginButtonColor, bool LoginButtonBorderColor, bool LoginButtonTextColor, bool AdminFilter; **NativeAppSettings**: bool AppDownloadLink, bool AndroidAppDownloadLink, bool IosAppDownloadLink; **WebrtcSettings** (only in v5.5 and earlier): bool StunURI, bool TurnURI; **ClusterSettings**: bool NetworkInterface, bool BindAddress, bool AdvertiseAddress; **MetricsSettings**: bool BlockProfileRate; **AnalyticsSettings**: bool MaxUsersForStatistics; **ExperimentalSettings** bool ClientSideCertCheck; **AnnouncementSettings**: bool BannerColor, bool BannerTextColor; **ElasticsearchSettings**: bool ConnectionUrl, bool Username, bool Password, bool IndexPrefix; **PluginSettings**: bool MarketplaceUrl, bool SignaturePublicKeyFiles, bool ChimeraOAuthProxyUrl; **MessageExportSettings**: bool GlobalRelaySettings.SmtpUsername, bool GlobalRelaySettings.SmtpPassword, bool GlobalRelaySettings.EmailAddress Commercial License Information (Enterprise Edition Only) Information about commercial license key purchased or trial license key used for Enterprise Edition servers: Company ID, license ID, license issue date, license start date, license expiry date, number of licensed users, license short name (E10 vs E20), list of unlocked Enterprise features. diff --git a/source/messaging/managing-channels.rst b/source/messaging/managing-channels.rst index 8aa5b385c6a..71e4b9c32a6 100644 --- a/source/messaging/managing-channels.rst +++ b/source/messaging/managing-channels.rst @@ -26,6 +26,10 @@ In the **Direct Messages** popup, identify your most recent conversations by rel .. image:: ../images/recent-direct-group-messages.png :alt: Write a Direct Message or Group Message. +Modify the header of any Direct or Group Message by selecting **Edit Conversation Header** from the channel name drop-down menu. + +Mute or unmute a conversation by selecting **Mute Conversation** or **Unmute Conversation** from the channel name drop-down menu. + Joining a channel ----------------- diff --git a/source/messaging/organizing-conversations.rst b/source/messaging/organizing-conversations.rst index 9f22b4b702a..b91cf465926 100644 --- a/source/messaging/organizing-conversations.rst +++ b/source/messaging/organizing-conversations.rst @@ -39,7 +39,7 @@ Replies are collapsed under the first message of a thread. To reply to a thread, .. tip:: - - Select anywhere on a message in a channel to view it, or reply to it, on the right-hand side. + - Select anywhere on a message in a channel in the center pane to view it, or reply to it, on the right-hand side. - In channels, a dot next to the thread participants indicates there are unread replies. You'll only see unreads for threads you're following. .. image:: ../images/crt-new-unread-threads.png diff --git a/source/upgrade/important-upgrade-notes.rst b/source/upgrade/important-upgrade-notes.rst index 15f0f785068..453b8634fc6 100644 --- a/source/upgrade/important-upgrade-notes.rst +++ b/source/upgrade/important-upgrade-notes.rst @@ -3,12 +3,22 @@ Important Upgrade Notes .. important:: - Support for Mattermost Server v5.31 `Extended Support Release `_ will come to the end of its life cycle on October 15, 2021. Upgrading to Mattermost Server v5.37 `Extended Support Release `_ or later is required. - - In the v5.38 release (August 16, 2021), we will deprecate "config watcher" (the mechanism that automatically reloads the ``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. + - Upgrading Mattermost can result in an error “ERROR: default for column "column_name" cannot be cast automatically to type jsonb” if you have non-JSON data in a column. This can also happen if the database data has been manipulated by external processes (e.g. plugins) and in cases where improper input data could get silently truncated due to varchar limits. The data in the affected database column has to be manually fixed. - The deprecations `listed here `_ are planned for the Mattermost v6.0 release, which is scheduled for September 15, 2021. This list is subject to change prior to the release. Also please note that with Mattermost v6.0, longer migration times can be expected. Nodes from v5.x cannot run with v6.x nodes in a cluster, meaning that a High Availability upgrade is not possible when upgrading to Mattermost v6.0. See this `Forum post `_ for details. +----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | If you’re upgrading from a version earlier than... | Then... | +====================================================+==================================================================================================================================================================+ +| v5.38.0 | The “config watcher” (the mechanism that automatically reloads the ``config.json`` file) has been removed in favor of the ``mmctl config`` command that will | +| | need to be run to apply configuration changes after they are made. This change improves configuration performance and robustness. | +| +------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | v5.38 adds fixes for some of the incorrect mention counts and unreads around threads and channels since the introduction of Collapsed Reply Threads (Beta). This | +| | fix is done through a SQL migration, and it may take several minutes to complete for large databases. The ``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. | +| +------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | Focalboard v0.8.0 (released with Mattermost v5.38.0) requires Mattermost v5.37 due to the new database connection system. | ++----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | v5.37.0 | The ``platform`` 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. | | +------------------------------------------------------------------------------------------------------------------------------------------------------------------+ diff --git a/source/upgrade/open-source-components.rst b/source/upgrade/open-source-components.rst index 51634da5f58..59ff31f6a74 100644 --- a/source/upgrade/open-source-components.rst +++ b/source/upgrade/open-source-components.rst @@ -19,6 +19,7 @@ Desktop Mobile ------- + - Mattermost Mobile v1.46.0 - `View Open Source Components `_. - Mattermost Mobile v1.45.0 - `View Open Source Components `_. - Mattermost Mobile v1.44.0 - `View Open Source Components `_. - Mattermost Mobile v1.43.0 - `View Open Source Components `_. @@ -109,6 +110,7 @@ Redux Server ------------------------------ + - Mattermost Enterprise Edition v5.38.0 - `View Open Source Components `_. - Mattermost Enterprise Edition v5.37.0 - `View Open Source Components `_. - Mattermost Enterprise Edition v5.36.0 - `View Open Source Components `_. - Mattermost Enterprise Edition v5.35.0 - `View Open Source Components `_. @@ -172,6 +174,7 @@ Server Webapp ------------------------------ + - Mattermost Enterprise Edition v5.38.0 - `View Open Source Components `_. - Mattermost Enterprise Edition v5.37.0 - `View Open Source Components `_. - Mattermost Enterprise Edition v5.36.0 - `View Open Source Components `_. - Mattermost Enterprise Edition v5.35.0 - `View Open Source Components `_. diff --git a/source/upgrade/release-lifecycle.rst b/source/upgrade/release-lifecycle.rst index 59e012fb569..9496d1c6e3d 100644 --- a/source/upgrade/release-lifecycle.rst +++ b/source/upgrade/release-lifecycle.rst @@ -13,6 +13,8 @@ During each monthly release, Mattermost backports high severity or high impact s +-------------+-----------------------+--------------------------+--------------------------+--------------------------+ | Version | Release Type | Lifecyle Start Date | Lifecycle End Date | Extended Support Release | +=============+=======================+==========================+==========================+==========================+ +| 5.38 | Feature | 2021-08-16 | 2021-11-15 | | ++-------------+-----------------------+--------------------------+--------------------------+--------------------------+ | 5.37 | Feature | 2021-07-16 | 2022-04-15 | Yes | +-------------+-----------------------+--------------------------+--------------------------+--------------------------+ | 5.36 | Feature | 2021-06-16 | 2021-09-15 | |