diff --git a/extensions/sphinx_inline_tabs/events.py b/extensions/sphinx_inline_tabs/events.py index ce71de904c0..e9654e40051 100644 --- a/extensions/sphinx_inline_tabs/events.py +++ b/extensions/sphinx_inline_tabs/events.py @@ -99,10 +99,36 @@ def doctree_read(app: Sphinx, doctree: nodes.document): break if has_toctree: - # SAFE APPROACH: For now, preserve left navigation completely - # This means workflow-automation.rst won't get right-pane tab labels - # but left navigation will work correctly - pass # Keep original structure unchanged + # Merge tab headings into the existing right-pane TOC while preserving + # the original toctree (left navigation) structure. + try: + # Find the bullet list in the original toc item (holds section entries) + original_bullets = None + for child in getattr(original_toc_item, "children", []) or []: + if isinstance(child, nodes.bullet_list): + original_bullets = child + break + + # Find the bullet list produced by our updated tab-aware TOC + updated_bullets = None + for child in getattr(updated_tocs, "children", []) or []: + if isinstance(child, nodes.bullet_list): + updated_bullets = child + break + + # If we have tab headings to merge + if updated_bullets is not None: + if original_bullets is None: + # No existing bullets: attach updated list directly + original_toc_item.append(updated_bullets) + else: + # Append each new tab heading item to existing bullets + for li in list(updated_bullets.children): + original_bullets.append(li) + except Exception as e: + logger.warning( + f"{LOG_PREFIX} doctree_read({app.env.docname}): failed merging tab headings into TOC: {e}" + ) else: # Only apply tab modifications if no toctree nodes are present app.env.tocs[app.env.docname][0][1] = updated_tocs diff --git a/source/administration-guide/configure/config-proxy-apache2.rst b/source/administration-guide/configure/config-proxy-apache2.rst deleted file mode 100644 index 0ef35646d9e..00000000000 --- a/source/administration-guide/configure/config-proxy-apache2.rst +++ /dev/null @@ -1,58 +0,0 @@ -:orphan: -:nosearch: - -.. _config-proxy-apache2: - -Configuring Apache2 as a proxy for Mattermost Server (Unofficial) ------------------------------------------------------------------ - -.. important:: This unofficial guide is maintained by the Mattermost community and this deployment configuration is not yet officially supported by Mattermost, Inc. `Community testing, feedback and improvements are welcome and greatly appreciated `_. You can `edit this page on GitHub `_. - -On a Debian-based operating system such as Ubuntu, Apache2 proxy configuration is done in the ``/etc/apache2/sites-available`` directory. Red Hat-based systems organize Apache configuration files `differently `_. If you're setting up Mattermost on a subdomain, you'll want to create a new configuration file along the lines of ``mysubdomain.mydomain.com.conf``. - -**To configure Apache2 as a proxy** - -1. SSH into your server. -2. Make sure the Apache modules ``mod_rewrite`` , ``mod_proxy``, ``mod_proxy_http``, and ``mod_proxy_wstunnel`` are installed and enabled. If not, follow the instructions from your Linux distribution to do so. -3. Create the above mentioned configuration file. It is often helpful to start with a copy of ``000-default.conf`` or ``default-ssl.conf`` (on Ubuntu). -4. Edit your configuration using the guide below: - - 1. If you're not setting up a subdomain, your ``ServerName`` will simply be set to ``mydomain.com``. - 2. ``ServerAlias`` can been added too if you want to capture ``www.mydomain.com``. - 3. Remember to change the values to match your server's name, etc. - 4. If you have enabled TLS in the Mattermost settings, you must use the protocol ``wss://`` instead of ``ws://`` in the ``RewriteRule``. - 5. To serve requests on a different port (such as 8443), in addition to setting the port in the VirtualHost element, add ``Listen 8443`` on a separate line before the VirtualHost line. - -.. code-block:: apacheconf - - - # If you're not using a subdomain you may need to set a ServerAlias to: - # ServerAlias www.mydomain.com - ServerName mysubdomain.mydomain.com - ServerAdmin hostmaster@mydomain.com - ProxyPreserveHost On - - # Set web sockets - RewriteEngine On - RewriteCond %{REQUEST_URI} /api/v[0-9]+/(users/)?websocket [NC] - RewriteCond %{HTTP:UPGRADE} ^WebSocket$ [NC,OR] - RewriteCond %{HTTP:CONNECTION} ^Upgrade$ [NC] - RewriteRule .* ws://127.0.0.1:8065%{REQUEST_URI} [P,QSA,L] - - - Require all granted - ProxyPass http://127.0.0.1:8065/ - ProxyPassReverse http://127.0.0.1:8065/ - ProxyPassReverseCookieDomain 127.0.0.1 mysubdomain.mydomain.com - - - - -5. (Debian/Ubuntu only) Because you'll likely have not set up the subdomain before now on Apache2, run ``a2ensite mysubdomain.mydomain.com`` to enable the site (do not run ``a2ensite mysubdomain.mydomain.com.conf``). - -6. Restart Apache2. - - - On Ubuntu 14.04 and RHEL 6: ``sudo service apache2 restart`` - - On Ubuntu 16.04+ and RHEL 7+: ``sudo systemctl restart apache2`` - -You should be all set! Ensure that your Mattermost config file is pointing to the correct URL (which may include a port), and then ensure that your socket connection is not dropping once deployed. To prevent external access to Mattermost on port 8065, in the config file, set ``ListenAddress`` to ``localhost:8065`` instead of ``:8065``. diff --git a/source/administration-guide/configure/deprecated-configuration-settings.rst b/source/administration-guide/configure/deprecated-configuration-settings.rst index e5feb63a4f0..fc8fe458c7e 100644 --- a/source/administration-guide/configure/deprecated-configuration-settings.rst +++ b/source/administration-guide/configure/deprecated-configuration-settings.rst @@ -392,17 +392,6 @@ The port used for streaming data between servers. | This feature's ``config.json`` setting is ``"StreamingPort": ":8075"`` with string input. | +-------------------------------------------------------------------------------------------+ -Maximum idle database connections -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -*Deprecated. Not used in Mattermost v7.0 and later* - -+--------------------------------------------------------+------------------------------------------------------------------+ -| The maximum number of idle connections held open | - System Config path: **Environment > Database** | -| to the database. | - ``config.json`` setting: ``".SqlSettings.MaxIdleConns": 20,`` | -| | - Environment variable: ``MM_SQLSETTINGS_MAXIDLECONNS`` | -| Numerical input. Default is **20**. | | -+--------------------------------------------------------+------------------------------------------------------------------+ Maximum idle connections for high availability ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/source/administration-guide/configure/environment-configuration-settings.rst b/source/administration-guide/configure/environment-configuration-settings.rst index 90d68521812..75767a172ef 100644 --- a/source/administration-guide/configure/environment-configuration-settings.rst +++ b/source/administration-guide/configure/environment-configuration-settings.rst @@ -49,7 +49,7 @@ Site URL +---------------------------------------------------------------+---------------------------------------------------------------+ | The URL that users use to access Mattermost. | - System Config path: **Environment > Web Server** | -| The port number is required if it’s not a standard port, | - ``config.json`` setting: ``.ServiceSettings.SiteURL",`` | +| The port number is required if it’s not a standard port, | - ``config.json`` setting: ``ServiceSettings`` > ``SiteURL`` | | such as 80 or 443. This field is required. | - Environment variable: ``MM_SERVICESETTINGS_SITEURL`` | | | | | Select the **Test Live URL** button in the System Console | | @@ -76,13 +76,13 @@ Site URL Maximum URL length ~~~~~~~~~~~~~~~~~~ -+---------------------------------------------------------------+--------------------------------------------------------------------------+ -| The longest URL, in characters, including query parameters, | - System Config path: N/A | -| accepted by the Mattermost server. Longer URLs are rejected, | - ``config.json`` setting: ``.ServiceSettings.MaximumURLLength: 2048",`` | -| and API calls fail with an error. | - Environment variable: ``MM_SERVICESETTINGS_MAXIMUMURLLENGTH`` | -| | | -| Numeric value. Default is **2048** characters. | | -+---------------------------------------------------------------+--------------------------------------------------------------------------+ ++---------------------------------------------------------------+----------------------------------------------------------------------------------+ +| The longest URL, in characters, including query parameters, | - System Config path: N/A | +| accepted by the Mattermost server. Longer URLs are rejected, | - ``config.json`` setting: ``ServiceSettings`` > ``MaximumURLLength`` > ``2048`` | +| and API calls fail with an error. | - Environment variable: ``MM_SERVICESETTINGS_MAXIMUMURLLENGTH`` | +| | | +| Numeric value. Default is **2048** characters. | | ++---------------------------------------------------------------+----------------------------------------------------------------------------------+ .. config:setting:: web-server-listen-address :displayname: Web server listen address (Web Server) @@ -96,16 +96,16 @@ Maximum URL length Web server listen address ~~~~~~~~~~~~~~~~~~~~~~~~~ -+---------------------------------------------------------------+------------------------------------------------------------------+ -| The address and port to which to bind and listen. | - System Config path: **Environment > Web Server** | -| Specifying ``:8065`` will bind to all network interfaces. | - ``config.json`` setting: ``".ServiceSettings.ListenAddress",`` | -| Specifying ``127.0.0.1:8065`` will only bind to the network | - Environment variable: ``MM_SERVICESETTINGS_LISTENADDRESS`` | -| interface having that IP address. | | -| | | -| If you choose a port of a lower level (called “system ports” | | -| or “well-known ports”, in the range of 0-1023), you must have | | -| permissions to bind to that port. | | -+---------------------------------------------------------------+------------------------------------------------------------------+ ++---------------------------------------------------------------+--------------------------------------------------------------------+ +| The address and port to which to bind and listen. | - System Config path: **Environment > Web Server** | +| Specifying ``:8065`` will bind to all network interfaces. | - ``config.json`` setting: ``ServiceSettings`` > ``ListenAddress`` | +| Specifying ``127.0.0.1:8065`` will only bind to the network | - Environment variable: ``MM_SERVICESETTINGS_LISTENADDRESS`` | +| interface having that IP address. | | +| | | +| If you choose a port of a lower level (called “system ports” | | +| or “well-known ports”, in the range of 0-1023), you must have | | +| permissions to bind to that port. | | ++---------------------------------------------------------------+--------------------------------------------------------------------+ .. config:setting:: forward-port-80-to-443 :displayname: Forward port 80 to 443 (Web Server) @@ -119,15 +119,15 @@ Web server listen address Forward port 80 to 443 ~~~~~~~~~~~~~~~~~~~~~~ -+---------------------------------------------------------------+--------------------------------------------------------------------------+ -| Forward insecure traffic from port 80 to port 443. | - System Config path: **Environment > Web Server** | -| | - ``config.json`` setting: ``".ServiceSettings.Forward80To443: false",`` | -| - **true**: Forwards all insecure traffic from port 80 to | - Environment variable: ``MM_SERVICESETTINGS_FORWARD80TO443`` | -| secure port 443. | | -| - **false**: **(Default)** When using a proxy such as NGINX | | -| in front of Mattermost this setting is unnecessary | | -| and should be set to false. | | -+---------------------------------------------------------------+--------------------------------------------------------------------------+ ++---------------------------------------------------------------+---------------------------------------------------------------------------------+ +| Forward insecure traffic from port 80 to port 443. | - System Config path: **Environment > Web Server** | +| | - ``config.json`` setting: ``ServiceSettings`` > ``Forward80To443`` > ``false`` | +| - **true**: Forwards all insecure traffic from port 80 to | - Environment variable: ``MM_SERVICESETTINGS_FORWARD80TO443`` | +| secure port 443. | | +| - **false**: **(Default)** When using a proxy such as NGINX | | +| in front of Mattermost this setting is unnecessary | | +| and should be set to false. | | ++---------------------------------------------------------------+---------------------------------------------------------------------------------+ .. config:setting:: web-server-connection-security :displayname: Web server connection security (Web Server) @@ -142,14 +142,14 @@ Forward port 80 to 443 Web server connection security ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -+-----------------------------------------------------------------------+-----------------------------------------------------------------------+ -| Connection security between Mattermost clients and the server. | - System Config path: **Environment > Web Server** | -| | - ``config.json`` setting: ``".ServiceSettings.ConnectionSecurity",`` | -| - **Not specified**: Mattermost will connect over an unsecure | - Environment variable: ``MM_SERVICESETTINGS_CONNECTIONSECURITY`` | -| connection. | | -| - **TLS**: Encrypts the communication between Mattermost | | -| clients and your server. | | -+-----------------------------------------------------------------------+-----------------------------------------------------------------------+ ++-----------------------------------------------------------------------+-------------------------------------------------------------------------+ +| Connection security between Mattermost clients and the server. | - System Config path: **Environment > Web Server** | +| | - ``config.json`` setting: ``ServiceSettings`` > ``ConnectionSecurity`` | +| - **Not specified**: Mattermost will connect over an unsecure | - Environment variable: ``MM_SERVICESETTINGS_CONNECTIONSECURITY`` | +| connection. | | +| - **TLS**: Encrypts the communication between Mattermost | | +| clients and your server. | | ++-----------------------------------------------------------------------+-------------------------------------------------------------------------+ See the :doc:`setting up TLS for Mattermost ` for details. @@ -163,12 +163,12 @@ See the :doc:`setting up TLS for Mattermost TLS certificate file ~~~~~~~~~~~~~~~~~~~~ -+--------------------------------------------------------+------------------------------------------------------------------+ -| The path to the certificate file to use for TLS | - System Config path: **Environment > Web Server** | -| connection security. | - ``config.json`` setting: ``".ServiceSettings.TLSCertFile",`` | -| | - Environment variable: ``MM_SERVICESETTINGS_TLSCERTFILE`` | -| String input. | | -+--------------------------------------------------------+------------------------------------------------------------------+ ++--------------------------------------------------------+--------------------------------------------------------------------+ +| The path to the certificate file to use for TLS | - System Config path: **Environment > Web Server** | +| connection security. | - ``config.json`` setting: ``ServiceSettings`` > ``TLSCertFile`` | +| | - Environment variable: ``MM_SERVICESETTINGS_TLSCERTFILE`` | +| String input. | | ++--------------------------------------------------------+--------------------------------------------------------------------+ .. config:setting:: tls-key-file :displayname: TLS key file (Web Server) @@ -180,12 +180,12 @@ TLS certificate file TLS key file ~~~~~~~~~~~~ -+--------------------------------------------------------+---------------------------------------------------------------+ -| The path to the TLS key file to use for TLS | - System Config path: **Environment > Web Server** | -| connection security. | - ``config.json`` setting: ``".ServiceSettings.TLSKeyFile",`` | -| | - Environment variable: ``MM_SERVICESETTINGS_TLSKEYFILE`` | -| String input. | | -+--------------------------------------------------------+---------------------------------------------------------------+ ++--------------------------------------------------------+-----------------------------------------------------------------+ +| The path to the TLS key file to use for TLS | - System Config path: **Environment > Web Server** | +| connection security. | - ``config.json`` setting: ``ServiceSettings`` > ``TLSKeyFile`` | +| | - Environment variable: ``MM_SERVICESETTINGS_TLSKEYFILE`` | +| String input. | | ++--------------------------------------------------------+-----------------------------------------------------------------+ .. config:setting:: use-lets-encrypt :displayname: Use Let's Encrypt (Web Server) @@ -200,17 +200,17 @@ TLS key file Use Let's Encrypt ~~~~~~~~~~~~~~~~~ -+-----------------------------------------------------------------------------------------------+--------------------------------------------------------------------------+ -| Enable the automatic retrieval of certificates from Let’s Encrypt. | - System Config path: **Environment > Web Server** | -| | - ``config.json`` setting: ``".ServiceSettings.UseLetsEncrypt: false",`` | -| | - Environment variable: ``MM_SERVICESETTINGS_USELETSENCRYPT`` | -| - **true**: The certificate will be retrieved when a client | | -| attempts to connect from a new domain. This will work with | | -| multiple domains. | | -| - **false**: **(Default)** Manual certificate specification | | -| based on the TLS Certificate File and TLS Key File specified | | -| above. | | -+-----------------------------------------------------------------------------------------------+--------------------------------------------------------------------------+ ++-----------------------------------------------------------------------------+---------------------------------------------------------------------------------+ +| Enable the automatic retrieval of certificates from Let’s Encrypt. | - System Config path: **Environment > Web Server** | +| | - ``config.json`` setting: ``ServiceSettings`` > ``UseLetsEncrypt`` > ``false`` | +| | - Environment variable: ``MM_SERVICESETTINGS_USELETSENCRYPT`` | +| - **true**: The certificate will be retrieved when a client | | +| attempts to connect from a new domain. This will work with | | +| multiple domains. | | +| - **false**: **(Default)** Manual certificate specification | | +| based on the TLS Certificate File and TLS Key File specified | | +| above. | | ++-----------------------------------------------------------------------------+---------------------------------------------------------------------------------+ See the :doc:`setting up TLS for Mattermost ` for details on setting up Let's Encrypt. @@ -224,12 +224,12 @@ See the :doc:`setting up TLS for Mattermost Let's Encrypt certificate cache file ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -+--------------------------------------------------------+------------------------------------------------------------------------------------+ -| The path to the file where certificates and other data | - System Config path: **Environment > Web Server** | -| about the Let’s Encrypt service will be stored. | - ``config.json`` setting: ``".ServiceSettings.LetsEncryptCertificateCacheFile",`` | -| | - Environment variable: ``MM_SERVICESETTINGS_LETSENCRYPTCERTIFICATECACHEFILE`` | -| File path input. | | -+--------------------------------------------------------+------------------------------------------------------------------------------------+ ++--------------------------------------------------------+--------------------------------------------------------------------------------------+ +| The path to the file where certificates and other data | - System Config path: **Environment > Web Server** | +| about the Let’s Encrypt service will be stored. | - ``config.json`` setting: ``ServiceSettings`` > ``LetsEncryptCertificateCacheFile`` | +| | - Environment variable: ``MM_SERVICESETTINGS_LETSENCRYPTCERTIFICATECACHEFILE`` | +| File path input. | | ++--------------------------------------------------------+--------------------------------------------------------------------------------------+ .. config:setting:: read-timeout :displayname: Read timeout (Web Server) @@ -241,12 +241,12 @@ Let's Encrypt certificate cache file Read timeout ~~~~~~~~~~~~ -+---------------------------------------------------------+---------------------------------------------------------------------+ -| Maximum time allowed from when the connection is | - System Config path: **Environment > Web Server** | -| accepted to when the request body is fully read. | - ``config.json`` setting: ``".ServiceSettings.ReadTimeout: 300",`` | -| | - Environment variable: ``MM_SERVICESETTINGS_READTIMEOUT`` | -| Numerical input in seconds. Default is **300** seconds. | | -+---------------------------------------------------------+---------------------------------------------------------------------+ ++---------------------------------------------------------+----------------------------------------------------------------------------+ +| Maximum time allowed from when the connection is | - System Config path: **Environment > Web Server** | +| accepted to when the request body is fully read. | - ``config.json`` setting: ``ServiceSettings`` > ``ReadTimeout`` > ``300`` | +| | - Environment variable: ``MM_SERVICESETTINGS_READTIMEOUT`` | +| Numerical input in seconds. Default is **300** seconds. | | ++---------------------------------------------------------+----------------------------------------------------------------------------+ .. config:setting:: write-timeout :displayname: Write timeout (Web Server) @@ -263,7 +263,7 @@ Write timeout +----------------------------------------------------------+-----------------------------------------------------------------------------+ | - If using HTTP (insecure), this is the maximum time | - System Config path: **Environment > Web Server** | -| allowed from the end of reading the request headers | - ``config.json`` setting: ``".ServiceSettings.WriteTimeout: 300",`` | +| allowed from the end of reading the request headers | - ``config.json`` setting: ``ServiceSettings`` > ``WriteTimeout`` > ``300`` | | until the response is written. | - Environment variable: ``MM_SERVICESETTINGS_WRITETIMEOUT`` | | - If using HTTPS, it's the total time from when the | | | connection is accepted until the response is written. | | @@ -281,13 +281,13 @@ Write timeout Idle timeout ~~~~~~~~~~~~ -+---------------------------------------------------------+---------------------------------------------------------------------+ -| Set an explicit idle timeout in the HTTP server. | - System Config path: **Environment > Web Server** | -| This is the maximum time allowed before an idle | - ``config.json`` setting: ``".ServiceSettings.IdleTimeout: 300",`` | -| connection is disconnected. | - Environment variable: ``MM_SERVICESETTINGS_IDLETIMEOUT`` | -| | | -| Numerical input in seconds. Default is **300** seconds. | | -+---------------------------------------------------------+---------------------------------------------------------------------+ ++---------------------------------------------------------+----------------------------------------------------------------------------+ +| Set an explicit idle timeout in the HTTP server. | - System Config path: **Environment > Web Server** | +| This is the maximum time allowed before an idle | - ``config.json`` setting: ``ServiceSettings`` > ``IdleTimeout`` > ``300`` | +| connection is disconnected. | - Environment variable: ``MM_SERVICESETTINGS_IDLETIMEOUT`` | +| | | +| Numerical input in seconds. Default is **300** seconds. | | ++---------------------------------------------------------+----------------------------------------------------------------------------+ .. config:setting:: webserver-mode :displayname: Webserver mode (Web Server) @@ -302,19 +302,19 @@ Idle timeout Webserver mode ~~~~~~~~~~~~~~ -+---------------------------------------------------------------------+------------------------------------------------------------------------+ -| We recommend gzip to improve performance unless your | - System Config path: **Environment > Web Server** | -| environment has specific restrictions, such as a web proxy that | - ``config.json`` setting: ``".ServiceSettings.WebserverMode: gzip",`` | -| distributes gzip files poorly. | - Environment variable: ``MM_SERVICESETTINGS_WEBSERVERMODE`` | -| | | -| - **gzip**: **(Default)** The Mattermost server will serve static | | -| files compressed with gzip to improve performance. | | -| gzip compression applies to the HTML, CSS, Javascript, and other | | -| static content files that make up the Mattermost web client. | | -| - **Uncompressed**: The Mattermost server will serve static | | -| files uncompressed. | | -| - **Disabled**: The Mattermost server will not serve static files. | | -+---------------------------------------------------------------------+------------------------------------------------------------------------+ ++---------------------------------------------------------------------+---------------------------------------------------------------------------------+ +| We recommend gzip to improve performance unless your | - System Config path: **Environment > Web Server** | +| environment has specific restrictions, such as a web proxy that | - ``config.json`` setting: ``ServiceSettings`` > ``WebserverMode`` > ``"gzip"`` | +| distributes gzip files poorly. | - Environment variable: ``MM_SERVICESETTINGS_WEBSERVERMODE`` | +| | | +| - **gzip**: **(Default)** The Mattermost server will serve static | | +| files compressed with gzip to improve performance. | | +| gzip compression applies to the HTML, CSS, Javascript, and other | | +| static content files that make up the Mattermost web client. | | +| - **Uncompressed**: The Mattermost server will serve static | | +| files uncompressed. | | +| - **Disabled**: The Mattermost server will not serve static files. | | ++---------------------------------------------------------------------+---------------------------------------------------------------------------------+ .. config:setting:: enable-insecure-outgoing-connections :displayname: Enable insecure outgoing connections (Web Server) @@ -328,17 +328,17 @@ Webserver mode Enable insecure outgoing connections ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -+---------------------------------------------------------------+---------------------------------------------------------------------------------------------+ -| Configure Mattermost to allow insecure outgoing connections. | - System Config path: **Environment > Web Server** | -| | - ``config.json`` setting: ``".ServiceSettings.EnableInsecureOutgoingConnections: false",`` | -| - **true**: Outgoing HTTPS requests, including S3 clients, | - Environment variable: ``MM_SERVICESETTINGS_ENABLEINSECUREOUTGOINGCONNECTIONS`` | -| can accept unverified, self-signed certificates. | | -| For example, outgoing webhooks to a server with a | | -| self-signed TLS certificate, using any domain, will be | | -| allowed, and will skip TLS verification. | | -| - **false**: **(Default)** Only secure HTTPS requests are | | -| allowed. | | -+---------------------------------------------------------------+---------------------------------------------------------------------------------------------+ ++---------------------------------------------------------------+----------------------------------------------------------------------------------------------------+ +| Configure Mattermost to allow insecure outgoing connections. | - System Config path: **Environment > Web Server** | +| | - ``config.json`` setting: ``ServiceSettings`` > ``EnableInsecureOutgoingConnections`` > ``false`` | +| - **true**: Outgoing HTTPS requests, including S3 clients, | - Environment variable: ``MM_SERVICESETTINGS_ENABLEINSECUREOUTGOINGCONNECTIONS`` | +| can accept unverified, self-signed certificates. | | +| For example, outgoing webhooks to a server with a | | +| self-signed TLS certificate, using any domain, will be | | +| allowed, and will skip TLS verification. | | +| - **false**: **(Default)** Only secure HTTPS requests are | | +| allowed. | | ++---------------------------------------------------------------+----------------------------------------------------------------------------------------------------+ .. warning:: @@ -354,20 +354,20 @@ Enable insecure outgoing connections Managed resource paths ~~~~~~~~~~~~~~~~~~~~~~ -+--------------------------------------------------------+-------------------------------------------------------------------------+ -| A comma-separated list of paths within the Mattermost | - System Config path: **Environment > Web Server** | -| domain that are managed by a third party service | - ``config.json`` setting: ``".ServiceSettings.ManagedResourcePaths",`` | -| instead of Mattermost itself. | - Environment variable: ``MM_SERVICESETTINGS_MANAGEDRESOURCEPATHS`` | -| | | -| Links to these paths will be opened in a new | | -| tab/window by Mattermost apps. | | -| | | -| For example, if Mattermost is running on | | -| ``https://mymattermost.com``, setting this to | | -| conference will cause links such as | | -| ``https://mymattermost.com/conference`` to open in a | | -| new window. | | -+--------------------------------------------------------+-------------------------------------------------------------------------+ ++--------------------------------------------------------+---------------------------------------------------------------------------+ +| A comma-separated list of paths within the Mattermost | - System Config path: **Environment > Web Server** | +| domain that are managed by a third party service | - ``config.json`` setting: ``ServiceSettings`` > ``ManagedResourcePaths`` | +| instead of Mattermost itself. | - Environment variable: ``MM_SERVICESETTINGS_MANAGEDRESOURCEPATHS`` | +| | | +| Links to these paths will be opened in a new | | +| tab/window by Mattermost apps. | | +| | | +| For example, if Mattermost is running on | | +| ``https://mymattermost.com``, setting this to | | +| conference will cause links such as | | +| ``https://mymattermost.com/conference`` to open in a | | +| new window. | | ++--------------------------------------------------------+---------------------------------------------------------------------------+ .. note:: @@ -416,12 +416,12 @@ Purge all caches Websocket URL ~~~~~~~~~~~~~ -+--------------------------------------------------------+---------------------------------------------------------------------+ -| You can configure the server to instruct clients | - System Config path: N/A | -| on where they should try to connect websockets to. | - ``config.json`` setting: ``".ServiceSettings.WebsocketURL: "",`` | -| | - Environment variable: ``MM_SERVICESETTINGS_WEBSOCKETURL`` | -| String input. | | -+--------------------------------------------------------+---------------------------------------------------------------------+ ++--------------------------------------------------------+-----------------------------------------------------------------------------+ +| You can configure the server to instruct clients | - System Config path: N/A | +| on where they should try to connect websockets to. | - ``config.json`` setting: ``ServiceSettings`` > ``WebsocketURL`` > ``""`` | +| | - Environment variable: ``MM_SERVICESETTINGS_WEBSOCKETURL`` | +| String input. | | ++--------------------------------------------------------+-----------------------------------------------------------------------------+ .. note:: @@ -440,15 +440,15 @@ License file location .. include:: ../../_static/badges/ent-pro-only.rst :start-after: :nosearch: -+--------------------------------------------------------+----------------------------------------------------------------------------+ -| The path and filename of the license file on disk. | - System Config path: N/A | -| On startup, if Mattermost can't find a valid license | - ``config.json`` setting: ``".ServiceSettings.LicenseFileLocation: "",`` | -| in the database from a previous upload, it looks in | - Environment variable: ``MM_SERVICESETTINGS_LICENSEFILELOCATION`` | -| this path for the license file. | | -| | | -| String input. Can be an absolute path or a path | | -| relative to the ``mattermost`` directory. | | -+--------------------------------------------------------+----------------------------------------------------------------------------+ ++--------------------------------------------------------+------------------------------------------------------------------------------------+ +| The path and filename of the license file on disk. | - System Config path: N/A | +| On startup, if Mattermost can't find a valid license | - ``config.json`` setting: ``ServiceSettings`` > ``LicenseFileLocation`` > ``""`` | +| in the database from a previous upload, it looks in | - Environment variable: ``MM_SERVICESETTINGS_LICENSEFILELOCATION`` | +| this path for the license file. | | +| | | +| String input. Can be an absolute path or a path | | +| relative to the ``mattermost`` directory. | | ++--------------------------------------------------------+------------------------------------------------------------------------------------+ .. config:setting:: tls-minimum-version :displayname: TLS minimum version (Web Server) @@ -460,11 +460,11 @@ License file location TLS minimum version ~~~~~~~~~~~~~~~~~~~ -+--------------------------------------------------------+---------------------------------------------------------------------+ -| The minimum TLS version used by the Mattermost server. | - System Config path: N/A | -| | - ``config.json`` setting: ``".ServiceSettings.TLSMinVer: 1.2",`` | -| String input. Default is **1.2**. | - Environment variable: ``MM_SERVICESETTINGS_TLSMINVER`` | -+--------------------------------------------------------+---------------------------------------------------------------------+ ++--------------------------------------------------------+----------------------------------------------------------------------------+ +| The minimum TLS version used by the Mattermost server. | - System Config path: N/A | +| | - ``config.json`` setting: ``ServiceSettings`` > ``TLSMinVer`` > ``1.2`` | +| String input. Default is **1.2**. | - Environment variable: ``MM_SERVICESETTINGS_TLSMINVER`` | ++--------------------------------------------------------+----------------------------------------------------------------------------+ .. note:: @@ -480,14 +480,14 @@ TLS minimum version Trusted proxy IP header ~~~~~~~~~~~~~~~~~~~~~~~ -+--------------------------------------------------------+------------------------------------------------------------------------------+ -| Specified headers that will be checked, one by one, | - System Config path: N/A | -| for IP addresses (order is important). | - ``config.json`` setting: ``".ServiceSettings.TrustedProxyIPHeader: []",`` | -| All other headers are ignored. | - Environment variable: ``MM_SERVICESETTINGS_TRUSTEDPROXYIPHEADER`` | -| | | -| String array input consisting of header names, | | -| such as ``["X-Forwarded-For", "X-Real-Ip"]``. | | -+--------------------------------------------------------+------------------------------------------------------------------------------+ ++--------------------------------------------------------+-------------------------------------------------------------------------------------+ +| Specified headers that will be checked, one by one, | - System Config path: N/A | +| for IP addresses (order is important). | - ``config.json`` setting: ``ServiceSettings`` > ``TrustedProxyIPHeader`` > ``[]`` | +| All other headers are ignored. | - Environment variable: ``MM_SERVICESETTINGS_TRUSTEDPROXYIPHEADER`` | +| | | +| String array input consisting of header names, | | +| such as ``["X-Forwarded-For", "X-Real-Ip"]``. | | ++--------------------------------------------------------+-------------------------------------------------------------------------------------+ .. note:: @@ -507,14 +507,14 @@ Trusted proxy IP header Enable Strict Transport Security (HSTS) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -+--------------------------------------------------------+-------------------------------------------------------------------------------+ -| - **true**: Adds the Strict Transport Security (HSTS) | - System Config path: N/A | -| header to all responses, forcing the browser to | - ``config.json`` setting: ``".ServiceSettings.TLSStrictTransport: false",`` | -| request all resources via HTTPS. | - Environment variable: ``MM_SERVICESETTINGS_TLSSTRICTTRANSPORT`` | -| - **false**: **(Default)** No restrictions on TLS | | -| transport. Strict Transport Security (HSTS) header | | -| isn't added to responses. | | -+--------------------------------------------------------+-------------------------------------------------------------------------------+ ++--------------------------------------------------------+--------------------------------------------------------------------------------------+ +| - **true**: Adds the Strict Transport Security (HSTS) | - System Config path: N/A | +| header to all responses, forcing the browser to | - ``config.json`` setting: ``ServiceSettings`` > ``TLSStrictTransport`` > ``false`` | +| request all resources via HTTPS. | - Environment variable: ``MM_SERVICESETTINGS_TLSSTRICTTRANSPORT`` | +| - **false**: **(Default)** No restrictions on TLS | | +| transport. Strict Transport Security (HSTS) header | | +| isn't added to responses. | | ++--------------------------------------------------------+--------------------------------------------------------------------------------------+ See the `Strict-Transport-Security `__ documentation for details. @@ -528,14 +528,14 @@ See the `Strict-Transport-Security ``TLSStrictTransportMaxAge`` > ``63072000`` | +| period, a site can't be accessed using HTTP unless | - Environment variable: ``MM_SERVICESETTINGS_TLSSTRICTTRANSPORTMAXAGE`` | +| ``TLSStrictTransport`` is set to ``true``. | | +| | | +| Numerical input. Default is **63072000** (2 years). | | ++--------------------------------------------------------+-----------------------------------------------------------------------------------------------+ See the `Strict-Transport-Security `__ documentation for details. @@ -549,17 +549,17 @@ See the `Strict-Transport-Security ``TLSOverwriteCiphers`` > ``[]`` | +| or to limit the types of accepted ciphers. | - Environment variable: ``MM_SERVICESETTINGS_TLSOVERWRITECIPHERS`` | +| | | +| If none specified, the Mattermost server assumes a | | +| set of currently considered secure ciphers, and allows | | +| overwrites in the edge case. | | +| | | +| String array input. | | ++--------------------------------------------------------+------------------------------------------------------------------------------------+ .. note:: @@ -576,17 +576,17 @@ TLS cipher overwrites Goroutine health threshold ~~~~~~~~~~~~~~~~~~~~~~~~~~ -+--------------------------------------------------------+----------------------------------------------------------------------------------+ -| Set a threshold on the number of goroutines when the | - System Config path: N/A | -| Mattermost system is considered to be in a healthy | - ``config.json`` setting: ``".ServiceSettings.GoroutineHealthThreshold: -1",`` | -| state. | - Environment variable: ``MM_SERVICESETTINGS_GOROUTINEHEALTHTHRESHOLD`` | -| | | -| When goroutines exceed this limit, a warning is | | -| returned in the server logs. | | -| | | -| Numeric input. Default is **-1** which turns off | | -| checking for the threshold. | | -+--------------------------------------------------------+----------------------------------------------------------------------------------+ ++--------------------------------------------------------+-----------------------------------------------------------------------------------------+ +| Set a threshold on the number of goroutines when the | - System Config path: N/A | +| Mattermost system is considered to be in a healthy | - ``config.json`` setting: ``ServiceSettings`` > ``GoroutineHealthThreshold`` > ``-1`` | +| state. | - Environment variable: ``MM_SERVICESETTINGS_GOROUTINEHEALTHTHRESHOLD`` | +| | | +| When goroutines exceed this limit, a warning is | | +| returned in the server logs. | | +| | | +| Numeric input. Default is **-1** which turns off | | +| checking for the threshold. | | ++--------------------------------------------------------+-----------------------------------------------------------------------------------------+ .. config:setting:: allow-cookies-for-subdomains :displayname: Allow cookies for subdomains (Web Server) @@ -600,12 +600,12 @@ Goroutine health threshold Allow cookies for subdomains ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -+--------------------------------------------------------+-------------------------------------------------------------------------------------+ -| - **true**: **(Default)** Allows cookies for | - System Config path: N/A | -| subdomains by setting the domain parameter on | - ``config.json`` setting: ``".ServiceSettings.AllowCookiesForSubdomains: true",`` | -| Mattermost cookies. | - Environment variable: ``MM_SERVICESETTINGS_ALLOWCOOKIESFORSUBDOMAINS`` | -| - **false**: Cookies not allowed for subdomains. | | -+--------------------------------------------------------+-------------------------------------------------------------------------------------+ ++--------------------------------------------------------+--------------------------------------------------------------------------------------------+ +| - **true**: **(Default)** Allows cookies for | - System Config path: N/A | +| subdomains by setting the domain parameter on | - ``config.json`` setting: ``ServiceSettings`` > ``AllowCookiesForSubdomains`` > ``true`` | +| Mattermost cookies. | - Environment variable: ``MM_SERVICESETTINGS_ALLOWCOOKIESFORSUBDOMAINS`` | +| - **false**: Cookies aren't allowed for subdomains. | | ++--------------------------------------------------------+--------------------------------------------------------------------------------------------+ .. config:setting:: cluster-log-timeout :displayname: Cluster log timeout (Web Server) @@ -620,14 +620,14 @@ Cluster log timeout .. include:: ../../_static/badges/ent-only.rst :start-after: :nosearch: -+--------------------------------------------------------+-----------------------------------------------------------------------------------------+ -| Define the frequency, in milliseconds, of cluster | - System Config path: N/A | -| request time logging for performance monitoring. | - ``config.json`` setting: ``".ServiceSettings.ClusterLogTimeoutMilliseconds: 2000",`` | -| | - Environment variable: ``MM_SERVICESETTINGS_CLUSTERLOGTIMEOUTMILLISECONDS`` | -| | | -| Numerical input. Default is **2000** milliseconds | | -| (2 seconds). | | -+--------------------------------------------------------+-----------------------------------------------------------------------------------------+ ++--------------------------------------------------------+------------------------------------------------------------------------------------------------+ +| Define the frequency, in milliseconds, of cluster | - System Config path: N/A | +| request time logging for performance monitoring. | - ``config.json`` setting: ``ServiceSettings`` > ``ClusterLogTimeoutMilliseconds`` > ``2000`` | +| | - Environment variable: ``MM_SERVICESETTINGS_CLUSTERLOGTIMEOUTMILLISECONDS`` | +| | | +| Numerical input. Default is **2000** milliseconds | | +| (2 seconds). | | ++--------------------------------------------------------+------------------------------------------------------------------------------------------------+ See the :doc:`performance monitoring ` documentation for details. @@ -641,15 +641,15 @@ See the :doc:`performance monitoring ``MaximumPayloadSizeBytes`` > ``300000`` | +| | - Environment variable: ``MM_SERVICESETTINGS_MAXIMUMPAYLOADSIZEBYTES`` | +| For example, the upload attachment API or the API to | | +| upload a custom emoji. | | +| | | +| Numerical value. Default is **300000** (300 kB). | | ++-----------------------------------------------------------+--------------------------------------------------------------------------------------------+ ---- @@ -676,7 +676,7 @@ Driver name +---------------------------------------------------------------+--------------------------------------------------------------------------+ | The type of database. Can be either: | - System Config path: N/A | -| | - ``config.json`` setting: ``".SqlSettings.DriverName",`` | +| | - ``config.json`` setting: ``SqlSettings`` > ``DriverName`` | | - **mysql**: **(Default)** Enables driver to MySQL database. | - Environment variable: ``MM_SQLSETTINGS_DRIVERNAME`` | | - **postgres**: Enables driver to PostgreSQL database. | | +---------------------------------------------------------------+--------------------------------------------------------------------------+ @@ -693,7 +693,7 @@ Data source +---------------------------------------------------------------+--------------------------------------------------------------------------+ | The connection string to the master database. | - System Config path: N/A | -| | - ``config.json`` setting: ``".SqlSettings.DataSource",`` | +| | - ``config.json`` setting: ``SqlSettings`` > ``DataSource`` | | String input. | - Environment variable: ``MM_SQLSETTINGS_DATASOURCE`` | | | | +---------------------------------------------------------------+--------------------------------------------------------------------------+ @@ -770,24 +770,24 @@ See `Connection-Encryption Option Summary @tcp(hostname or IP:3306)/mattermost_test | -| MySQL server. | | ?charset=utf8mb4,utf8&writeTimeout=30s&tls=false"`` | -+----------------------------------------+-----------------+---------------------------------------------------------------------------+ -| Use TLS / SSL encryption against | ``true`` | ``"@tcp(hostname or IP:3306)/mattermost_test | -| MySQL server. | | ?charset=utf8mb4,utf8&writeTimeout=30s&tls=true"`` | -+----------------------------------------+-----------------+---------------------------------------------------------------------------+ -| Use TLS / SSL encryption with a self- | ``skip-verify`` | ``"@tcp(hostname or IP:3306)/mattermost_test | -| signed certificate against | | ?charset=utf8mb4,utf8&writeTimeout=30s&tls=skip-verify"`` | -| MySQL server. | | | -+----------------------------------------+-----------------+---------------------------------------------------------------------------+ -| Use TLS / SSL encryption if server | ``preferred`` | ``"@tcp(hostname or IP:3306)/mattermost_test | -| advertises a possible fallback; | | ?charset=utf8mb4,utf8&writeTimeout=30s&tls=preferred"`` | -| unencrypted if it's not advertised. | | | -+----------------------------------------+-----------------+---------------------------------------------------------------------------+ ++----------------------------------------+-----------------+-----------------------------------------------------------------+ +| Short description of the ``tls`` | Value | Example of a data source name | +| parameter | | | ++========================================+=================+=================================================================+ +| Don't use TLS / SSL encryption against | ``false`` | ``"@tcp(hostname or IP:3306)/mattermost_test | +| MySQL server. | | ?charset=utf8mb4,utf8&writeTimeout=30s&tls=false"`` | ++----------------------------------------+-----------------+-----------------------------------------------------------------+ +| Use TLS / SSL encryption against | ``true`` | ``"@tcp(hostname or IP:3306)/mattermost_test | +| MySQL server. | | ?charset=utf8mb4,utf8&writeTimeout=30s&tls=true"`` | ++----------------------------------------+-----------------+-----------------------------------------------------------------+ +| Use TLS / SSL encryption with a self- | ``skip-verify`` | ``"@tcp(hostname or IP:3306)/mattermost_test | +| signed certificate against | | ?charset=utf8mb4,utf8&writeTimeout=30s&tls=skip-verify"`` | +| MySQL server. | | | ++----------------------------------------+-----------------+-----------------------------------------------------------------+ +| Use TLS / SSL encryption if server | ``preferred`` | ``"@tcp(hostname or IP:3306)/mattermost_test | +| advertises a possible fallback; | | ?charset=utf8mb4,utf8&writeTimeout=30s&tls=preferred"`` | +| unencrypted if it's not advertised. | | | ++----------------------------------------+-----------------+-----------------------------------------------------------------+ AWS High Availablity RDS cluster deployments ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -801,18 +801,36 @@ Mattermost doesn't need to manage this. See the :ref:`high availablility databas :systemconsole: Environment > Database :configjson: .SqlSettings.MaxOpenConns :environment: MM_SQLSETTINGS_MAXOPENCONNS - :description: The maximum number of idle connections held open to the database. Default is **300**. + :description: The maximum number of open connections to the database. Default is **100**. Maximum open connections ~~~~~~~~~~~~~~~~~~~~~~~~ -+--------------------------------------------------------+------------------------------------------------------------------+ -| The maximum number of open connections to the | - System Config path: **Environment > Database** | -| database. | - ``config.json`` setting: ``".SqlSettings.MaxOpenConns": 300,`` | -| | - Environment variable: ``MM_SQLSETTINGS_MAXOPENCONNS`` | -| Numerical input. Default is **300** for self-hosted | | -| deployments, and **100** for Cloud deployments. | | -+--------------------------------------------------------+------------------------------------------------------------------+ ++--------------------------------------------------------+-------------------------------------------------------------------------+ +| The maximum number of open connections to the | - System Config path: **Environment > Database** | +| database. | - ``config.json`` setting: ``SqlSettings`` > ``MaxOpenConns`` > ``300`` | +| | - Environment variable: ``MM_SQLSETTINGS_MAXOPENCONNS`` | +| Numerical input. Default is **300** for self-hosted | | +| deployments, and **100** for Cloud deployments. | | ++--------------------------------------------------------+-------------------------------------------------------------------------+ + +.. config:setting:: maximum-idle-connections + :displayname: Maximum idle connections (Database) + :systemconsole: Environment > Database + :configjson: .SqlSettings.MaxIdleConns + :environment: MM_SQLSETTINGS_MAXIDLECONNS + :description: The maximum number of idle connections held open to the database. Default is **50**. + +Maximum idle connections +~~~~~~~~~~~~~~~~~~~~~~~~ + ++-------------------------------------------------------+-------------------------------------------------------------------+ +| The maximum number of idle connections held open | - System Config path: **Environment > Database** | +| to the database. | - ``config.json`` setting: ``".SqlSettings.MaxIdleConns": 50,`` | +| | - Environment variable: ``MM_SQLSETTINGS_MAXIDLECONNS`` | +| Numerical input. Default is **50**. | | +| | | ++-------------------------------------------------------+-------------------------------------------------------------------+ .. config:setting:: query-timeout :displayname: Query timeout (Database) @@ -824,13 +842,13 @@ Maximum open connections Query timeout ~~~~~~~~~~~~~ -+--------------------------------------------------------+------------------------------------------------------------------+ -| The amount of time to wait, in seconds, for a response | - System Config path: **Environment > Database** | -| from the database after opening a connection and | - ``config.json`` setting: ``".SqlSettings.QueryTimeout: 30",`` | -| sending the query. | - Environment variable: ``MM_SQLSETTINGS_QUERYTIMEOUT`` | -| | | -| Numerical input in seconds. Default is **30** seconds. | | -+--------------------------------------------------------+------------------------------------------------------------------+ ++--------------------------------------------------------+-------------------------------------------------------------------------+ +| The amount of time to wait, in seconds, for a response | - System Config path: **Environment > Database** | +| from the database after opening a connection and | - ``config.json`` setting: ``SqlSettings`` > ``QueryTimeout`` > ``30`` | +| sending the query. | - Environment variable: ``MM_SQLSETTINGS_QUERYTIMEOUT`` | +| | | +| Numerical input in seconds. Default is **30** seconds. | | ++--------------------------------------------------------+-------------------------------------------------------------------------+ .. config:setting:: maximum-connection-lifetime :displayname: Maximum connection lifetime (Database) @@ -842,15 +860,15 @@ Query timeout Maximum connection lifetime ~~~~~~~~~~~~~~~~~~~~~~~~~~~ -+--------------------------------------------------------+-------------------------------------------------------------------------------------+ -| Maximum lifetime for a connection to the database, | - System Config path: **Environment > Database** | -| in milliseconds. Use this setting to configure the | - ``config.json`` setting: ``".SqlSettings.ConnMaxLifetimeMilliseconds: 3600000",`` | -| maximum amount of time a connection to the database | - Environment variable: ``MM_SQLSETTINGS_CONNMAXLIFETIMEMILLISECONDS`` | -| may be reused | | -| | | -| Numerical input in milliseconds. Default is | | -| **3600000** milliseconds (1 hour). | | -+--------------------------------------------------------+-------------------------------------------------------------------------------------+ ++--------------------------------------------------------+--------------------------------------------------------------------------------------------+ +| Maximum lifetime for a connection to the database, | - System Config path: **Environment > Database** | +| in milliseconds. Use this setting to configure the | - ``config.json`` setting: ``SqlSettings`` > ``ConnMaxLifetimeMilliseconds`` > ``3600000`` | +| maximum amount of time a connection to the database | - Environment variable: ``MM_SQLSETTINGS_CONNMAXLIFETIMEMILLISECONDS`` | +| may be reused | | +| | | +| Numerical input in milliseconds. Default is | | +| **3600000** milliseconds (1 hour). | | ++--------------------------------------------------------+--------------------------------------------------------------------------------------------+ .. config:setting:: maximum-connection-idle-timeout :displayname: Maximum connection idle timeout (Database) @@ -862,13 +880,13 @@ Maximum connection lifetime Maximum connection idle timeout ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -+--------------------------------------------------------+-------------------------------------------------------------------------------------+ -| Maximum time a database connection can remain idle, | - System Config path: **Environment > Database** | -| in milliseconds. | - ``config.json`` setting: ``".SqlSettings.ConnMaxIdleTimeMilliseconds: 300000",`` | -| | - Environment variable: ``MM_SQLSETTINGS_CONNMAXIDLETIMEMILLISECONDS`` | -| Numerical input in milliseconds. Default is **300000** | | -| (5 minutes). | | -+--------------------------------------------------------+-------------------------------------------------------------------------------------+ ++--------------------------------------------------------+--------------------------------------------------------------------------------------------+ +| Maximum time a database connection can remain idle, | - System Config path: **Environment > Database** | +| in milliseconds. | - ``config.json`` setting: ``SqlSettings`` > ``ConnMaxIdleTimeMilliseconds`` > ``300000`` | +| | - Environment variable: ``MM_SQLSETTINGS_CONNMAXIDLETIMEMILLISECONDS`` | +| Numerical input in milliseconds. Default is **300000** | | +| (5 minutes). | | ++--------------------------------------------------------+--------------------------------------------------------------------------------------------+ .. config:setting:: minimum-hashtag-length :displayname: Minimum hashtag length (Database) @@ -880,11 +898,11 @@ Maximum connection idle timeout Minimum hashtag length ~~~~~~~~~~~~~~~~~~~~~~~ -+----------------------------------------------------------------------+-------------------------------------------------------------------------+ -| Minimum number of characters in a hashtag. | - System Config path: **Environment > Database** | -| This value must be greater than or equal to **2**. | - ``config.json`` setting: ``".SqlSettings.MinimumHashtagLength: 3",`` | -| | - Environment variable: ``MM_SQLSETTINGS_MINIMUMHASHTAGLENGTH`` | -+----------------------------------------------------------------------+-------------------------------------------------------------------------+ ++----------------------------------------------------------------------+--------------------------------------------------------------------------------+ +| Minimum number of characters in a hashtag. | - System Config path: **Environment > Database** | +| This value must be greater than or equal to **2**. | - ``config.json`` setting: ``SqlSettings`` > ``MinimumHashtagLength`` > ``3`` | +| | - Environment variable: ``MM_SQLSETTINGS_MINIMUMHASHTAGLENGTH`` | ++----------------------------------------------------------------------+--------------------------------------------------------------------------------+ .. note:: @@ -895,6 +913,7 @@ Minimum hashtag length :systemconsole: Environment > Database :configjson: .SqlSettings.Trace :environment: MM_SQLSETTINGS_TRACE + :description: Log executed SQL statements for development purposes. Default is **false**. - **true**: Executing SQL statements are written to the log. - **false**: **(Default)** SQL statements aren't written to the log. @@ -904,7 +923,7 @@ SQL statement logging +---------------------------------------------------------------+--------------------------------------------------------------------------+ | Executed SQL statements can be written to the log for | - System Config path: **Environment > Database** | -| development. | - ``config.json`` setting: ``".SqlSettings.Trace: false",`` | +| development. | - ``config.json`` setting: ``SqlSettings`` > ``Trace`` > ``false`` | | | - Environment variable: ``MM_SQLSETTINGS_TRACE`` | | - **true**: Executing SQL statements are written to the log. | | | - **false**: **(Default)** SQL statements aren't written | | @@ -943,16 +962,16 @@ Recycle database connections Disable database search ~~~~~~~~~~~~~~~~~~~~~~~ -+------------------------------------------------------------------------------------+------------------------------------------------------------------------------+ -| When `enterprise-scale search `, | - System Config path: **Environment > Database** | -| database search can be disabled from performing searches. | - ``config.json`` setting: ``".SqlSettings.DisableDatabaseSearch: false",`` | -| | - Environment variable: ``MM_SQLSETTINGS_DISABLEDATABASESEARCH`` | -| - **true**: Disables the use of the database to perform | | -| searches. If another search engine isn't configured, | | -| setting this value to ``true`` will result in empty search | | -| results. | | -| - **false**: **(Default)** Database search isn't disabled. | | -+------------------------------------------------------------------------------------+------------------------------------------------------------------------------+ ++------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+ +| When `enterprise-scale search `, | - System Config path: **Environment > Database** | +| database search can be disabled from performing searches. | - ``config.json`` setting: ``SqlSettings`` > ``DisableDatabaseSearch`` > ``false`` | +| | - Environment variable: ``MM_SQLSETTINGS_DISABLEDATABASESEARCH`` | +| - **true**: Disables the use of the database to perform | | +| searches. If another search engine isn't configured, | | +| setting this value to ``true`` will result in empty search | | +| results. | | +| - **false**: **(Default)** Database search isn't disabled. | | ++------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+ Search behavior in Mattermost depends on which search engines are enabled: @@ -970,13 +989,13 @@ Search behavior in Mattermost depends on which search engines are enabled: - **Offloading Search to Indexing Services**: Disabling database search often means that searches are offloaded to specialized indexing services like Elasticsearch, which are optimized for search operations. These services can provide faster and more efficient search capabilities compared to traditional database searches. - **Lower Resource Consumption**: Running search queries directly against the database can be resource-intensive (using CPU and memory). With database search disabled, these resources can be allocated to other critical functions, improving overall system performance. - **Enhanced Scalability**: As the number of users and data volume grow, database search can become less efficient. Specialized search services are designed to scale more effectively, enhancing overall system scalability and performance. - - However, the ability to perform database searches in Mattermost is a critical feature for many users, particularly when other search engines aren't enabled. Disabling this feature will result in users seeing an error if they attempt to use the Mattermost Search box. It’s important to balance performance improvements with the needs of your organization and users. + + However, the ability to perform database searches in Mattermost is a critical feature for many users, particularly when other search engines aren't enabled. Disabling this feature will result in users seeing an error if they attempt to use the Mattermost Search box. It’s important to balance performance improvements with the needs of your organization and users. Applied schema migrations ~~~~~~~~~~~~~~~~~~~~~~~~~ -A list of all migrations that have been applied to the data store based on the version information available in the ``db_migrations`` table. Select **About Mattermost** from the product menu to review the current database schema version applied to your deployment. - +A list of all migrations that have been applied to the data store based on the version information available in the ``db_migrations`` table. Select **About Mattermost** from the Product |product-list| menu to review the current database schema version applied to your deployment. .. config:setting:: active-search-backend :displayname: Active search backend (Database) @@ -985,7 +1004,7 @@ A list of all migrations that have been applied to the data store based on the v :environment: N/A :description: Read-only display of the currently active backend used for search. -Active Search Backend +Active search backend ~~~~~~~~~~~~~~~~~~~~~ Read-only display of the currently active backend used for search. Values can include ``none``, ``database``, ``elasticsearch``, or ``bleve``. @@ -1003,11 +1022,11 @@ Read replicas .. include:: ../../_static/badges/ent-pro-only.rst :start-after: :nosearch: -+--------------------------------------------------------+-----------------------------------------------------------------------+ -| Specifies the connection strings for the read replica | - System Config path: N/A | -| databases. | - ``config.json`` setting: ``".SqlSettings.DataSourceReplicas": []`` | -| | - Environment variable: ``MM_SQLSETTINGS_DATASOURCEREPLICAS`` | -+--------------------------------------------------------+-----------------------------------------------------------------------+ ++--------------------------------------------------------+-------------------------------------------------------------------------------+ +| Specifies the connection strings for the read replica | - System Config path: N/A | +| databases. | - ``config.json`` setting: ``SqlSettings`` > ``DataSourceReplicas`` > ``[]`` | +| | - Environment variable: ``MM_SQLSETTINGS_DATASOURCEREPLICAS`` | ++--------------------------------------------------------+-------------------------------------------------------------------------------+ .. note:: @@ -1034,12 +1053,12 @@ Search replicas .. include:: ../../_static/badges/ent-pro-only.rst :start-after: :nosearch: -+--------------------------------------------------------+-----------------------------------------------------------------------------+ -| Specifies the connection strings for the search | - System Config path: N/A | -| replica databases. A search replica is similar to a | - ``config.json`` setting: ``".SqlSettings.DataSourceSearchReplicas": []`` | -| read replica, but is used only for handling search | - Environment variable: ``MM_SQLSETTINGS_DATASOURCESEARCHREPLICAS`` | -| queries. | | -+--------------------------------------------------------+-----------------------------------------------------------------------------+ ++--------------------------------------------------------+-------------------------------------------------------------------------------------+ +| Specifies the connection strings for the search | - System Config path: N/A | +| replica databases. A search replica is similar to a | - ``config.json`` setting: ``SqlSettings`` > ``DataSourceSearchReplicas`` > ``[]`` | +| read replica, but is used only for handling search | - Environment variable: ``MM_SQLSETTINGS_DATASOURCESEARCHREPLICAS`` | +| queries. | | ++--------------------------------------------------------+-------------------------------------------------------------------------------------+ .. note:: @@ -1065,7 +1084,7 @@ Replica lag settings +--------------------------------------------------------+----------------------------------------------------------------------------------+ | String array input specifies a connection string and | - System Config path: N/A | -| user-defined SQL queries on the database to measure | - ``config.json`` setting: ``".SqlSettings.ReplicaLagSettings": []`` | +| user-defined SQL queries on the database to measure | - ``config.json`` setting: ``SqlSettings`` > ``ReplicaLagSettings`` > ``[]`` | | replica lag for a single replica instance. | - Environment variable: ``MM_SQLSETTINGS_REPLICALAGSETTINGS`` | | | | | These settings monitor absolute lag based on binlog | | @@ -1203,13 +1222,13 @@ Replica monitor interval (seconds) .. include:: ../../_static/badges/allplans-selfhosted.rst :start-after: :nosearch: -+--------------------------------------------------------+---------------------------------------------------------------------------------+ -| Specifies how frequently unhealthy replicas will be | - System Config path: N/A | -| monitored for liveness check. Mattermost will | - ``config.json`` setting: ``".SqlSettings.ReplicaMonitorIntervalSeconds": 5`` | -| dynamically choose a replica if it's alive. | - Environment variable: ``MM_SQLSETTINGS_REPLICAMONITORINTERVALSECONDS`` | -| | | -| Numerical input. Default is 5 seconds. | | -+--------------------------------------------------------+---------------------------------------------------------------------------------+ ++--------------------------------------------------------+-----------------------------------------------------------------------------------------+ +| Specifies how frequently unhealthy replicas will be | - System Config path: N/A | +| monitored for liveness check. Mattermost will | - ``config.json`` setting: ``SqlSettings`` > ``ReplicaMonitorIntervalSeconds`` > ``5`` | +| dynamically choose a replica if it's alive. | - Environment variable: ``MM_SQLSETTINGS_REPLICAMONITORINTERVALSECONDS`` | +| | | +| Numerical input. Default is 5 seconds. | | ++--------------------------------------------------------+-----------------------------------------------------------------------------------------+ ---- @@ -1238,13 +1257,13 @@ You can configure Mattermost enterprise search by going to **System Console > En Enable Elasticsearch indexing ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -+---------------------------------------------------------------+--------------------------------------------------------------------------------+ -| Configure Mattermost to index new posts automatically. | - System Config path: **Environment > Elasticsearch** | -| | - ``config.json`` setting: ``".Elasticsearchsettings.EnableIndexing: false",`` | -| - **true**: Indexing of new messages occurs automatically. | - Environment variable: ``MM_ELASTICSEARCHSETTINGS_ENABLEINDEXING`` | -| - **false**: **(Default)** Indexing of new messages is | | -| disabled, and new messages aren't indexed. | | -+---------------------------------------------------------------+--------------------------------------------------------------------------------+ ++---------------------------------------------------------------+---------------------------------------------------------------------------------------+ +| Configure Mattermost to index new posts automatically. | - System Config path: **Environment > Elasticsearch** | +| | - ``config.json`` setting: ``ElasticsearchSettings`` > ``EnableIndexing`` > ``false`` | +| - **true**: Indexing of new messages occurs automatically. | - Environment variable: ``MM_ELASTICSEARCHSETTINGS_ENABLEINDEXING`` | +| - **false**: **(Default)** Indexing of new messages is | | +| disabled, and new messages aren't indexed. | | ++---------------------------------------------------------------+---------------------------------------------------------------------------------------+ .. note:: @@ -1262,12 +1281,12 @@ Backend type Both :doc:`Elasticsearch ` and :doc:`AWS OpenSearch ` provide enterprise-scale deployments with optimized search performance and prevents performance degradation and timeouts. Learn more about :doc:`enterprise search ` in our product documentation. -+----------------------------------------------------+-----------------------------------------------------------------------------------+ -| The type of search backend. | - System Config path: **Environment > Elasticsearch** | -| | - ``config.json`` setting: ``".Elasticsearchsettings.Backend: elasticsearch",`` | -| - ``elasticsearch`` - (**Default**) | - Environment variable: ``MM_ELASTICSEARCHSETTINGS_BACKEND`` | -| - ``opensearch`` - Required for AWS OpenSearch. | | -+----------------------------------------------------+-----------------------------------------------------------------------------------+ ++----------------------------------------------------+--------------------------------------------------------------------------------------------+ +| The type of search backend. | - System Config path: **Environment > Elasticsearch** | +| | - ``config.json`` setting: ``ElasticsearchSettings`` > ``Backend`` > ``"elasticsearch"`` | +| - ``elasticsearch`` - (**Default**) | - Environment variable: ``MM_ELASTICSEARCHSETTINGS_BACKEND`` | +| - ``opensearch`` - Required for AWS OpenSearch. | | ++----------------------------------------------------+--------------------------------------------------------------------------------------------+ Learn more about :ref:`enterprise search version support `. @@ -1283,7 +1302,7 @@ Server connection address +----------------------------------------------------+--------------------------------------------------------------------------+ | The address of the Elasticsearch or AWS | - System Config path: **Environment > Elasticsearch** | -| OpenSearch server. | - ``config.json`` setting: ``".Elasticsearchsettings.ConnectionUrl",`` | +| OpenSearch server. | - ``config.json`` setting: ``ElasticsearchSettings`` > ``ConnectionUrl`` | | | - Environment variable: ``MM_ELASTICSEARCHSETTINGS_CONNECTIONURL`` | +----------------------------------------------------+--------------------------------------------------------------------------+ @@ -1299,7 +1318,7 @@ CA path +----------------------------------------------------+--------------------------------------------------------------------------+ | Optional path to the Custom Certificate Authority | - System Config path: **Environment > Elasticsearch** | -| certificates for the Elasticsearch or AWS | - ``config.json`` setting: ``".Elasticsearchsettings.CA",`` | +| certificates for the Elasticsearch or AWS | - ``config.json`` setting: ``ElasticsearchSettings`` > ``CA`` | | OpenSearch server. | - Environment variable: ``MM_ELASTICSEARCHSETTINGS_CA`` | +----------------------------------------------------+--------------------------------------------------------------------------+ @@ -1322,7 +1341,7 @@ Available from Mattermost v7.8. Can be used in conjunction with basic auth crede +----------------------------------------------------+--------------------------------------------------------------------------+ | Optional client certificate for the connection to | - System Config path: **Environment > Elasticsearch** | -| the Elasticsearch or AWS OpenSearch server in | - ``config.json`` setting: ``".Elasticsearchsettings.ClientCert",`` | +| the Elasticsearch or AWS OpenSearch server in | - ``config.json`` setting: ``ElasticsearchSettings`` > ``ClientCert`` | | the PEM format. | - Environment variable: ``MM_ELASTICSEARCHSETTINGS_CLIENTCERT`` | +----------------------------------------------------+--------------------------------------------------------------------------+ @@ -1340,7 +1359,7 @@ Available from Mattermost v7.8. Can be used in conjunction with basic auth crede +----------------------------------------------------+--------------------------------------------------------------------------+ | Optional key for the client certificate in the PEM | - System Config path: **Environment > Elasticsearch** | -| format. | - ``config.json`` setting: ``".Elasticsearchsettings.ClientKey",`` | +| format. | - ``config.json`` setting: ``ElasticsearchSettings`` > ``ClientKey`` | | | - Environment variable: ``MM_ELASTICSEARCHSETTINGS_CLIENTKEY`` | +----------------------------------------------------+--------------------------------------------------------------------------+ @@ -1357,14 +1376,14 @@ Available from Mattermost v7.8. Can be used in conjunction with basic auth crede Skip TLS verification ~~~~~~~~~~~~~~~~~~~~~ -+---------------------------------------------------------------+-------------------------------------------------------------------------------------+ -| The certificate step for TLS connections can be skipped. | - System Config path: **Environment > Elasticsearch** | -| | - ``config.json`` setting: ``".Elasticsearchsettings.SkipTLSVerification: false",`` | -| - **true**: Skips the certificate verification step for | - Environment variable: ``MM_ELASTICSEARCHSETTINGS_SKIPTLSVERIFICATION`` | -| TLS connections. | | -| - **false**: **(Default)** Mattermost requires | | -| certificate verification. | | -+---------------------------------------------------------------+-------------------------------------------------------------------------------------+ ++---------------------------------------------------------------+--------------------------------------------------------------------------------------------+ +| The certificate step for TLS connections can be skipped. | - System Config path: **Environment > Elasticsearch** | +| | - ``config.json`` setting: ``ElasticsearchSettings`` > ``SkipTLSVerification`` > ``false`` | +| - **true**: Skips the certificate verification step for | - Environment variable: ``MM_ELASTICSEARCHSETTINGS_SKIPTLSVERIFICATION`` | +| TLS connections. | | +| - **false**: **(Default)** Mattermost requires | | +| certificate verification. | | ++---------------------------------------------------------------+--------------------------------------------------------------------------------------------+ .. config:setting:: server-username :displayname: Server username (Elasticsearch) @@ -1378,7 +1397,7 @@ Server username +---------------------------------------------------------------+--------------------------------------------------------------------------+ | (Optional) The username to authenticate to the | - System Config path: **Environment > Elasticsearch** | -| Elasticsearch or AWS OpenSearch server. | - ``config.json`` setting: ``".Elasticsearchsettings.UserName",`` | +| Elasticsearch or AWS OpenSearch server. | - ``config.json`` setting: ``ElasticsearchSettings`` > ``UserName`` | | | - Environment variable: ``MM_ELASTICSEARCHSETTINGS_USERNAME`` | | String input. | | +---------------------------------------------------------------+--------------------------------------------------------------------------+ @@ -1395,7 +1414,7 @@ Server password +---------------------------------------------------------------+--------------------------------------------------------------------------+ | (Optional) The password to authenticate to the | - System Config path: **Environment > Elasticsearch** | -| Elasticsearch or AWS OpenSearch server. | - ``config.json`` setting: ``".Elasticsearchsettings.Password",`` | +| Elasticsearch or AWS OpenSearch server. | - ``config.json`` setting: ``ElasticsearchSettings`` > ``Password`` | | | - Environment variable: ``MM_ELASTICSEARCHSETTINGS_PASSWORD`` | | String input. | | +---------------------------------------------------------------+--------------------------------------------------------------------------+ @@ -1413,14 +1432,14 @@ Server password Enable cluster sniffing ~~~~~~~~~~~~~~~~~~~~~~~ -+----------------------------------------------------------------+--------------------------------------------------------------------------+ -| Configure Mattermost to automatically find and connect to | - System Config path: **Environment > Elasticsearch** | -| all data nodes in a cluster. | - ``config.json`` setting: ``".Elasticsearchsettings.Sniff: false",`` | -| | - Environment variable: ``MM_ELASTICSEARCHSETTINGS_SNIFF`` | -| - **true**: Sniffing finds and connects to all data nodes | | -| in your cluster automatically. | | -| - **false**: **(Default)** Cluster sniffing is disabled. | | -+----------------------------------------------------------------+--------------------------------------------------------------------------+ ++----------------------------------------------------------------+---------------------------------------------------------------------------------+ +| Configure Mattermost to automatically find and connect to | - System Config path: **Environment > Elasticsearch** | +| all data nodes in a cluster. | - ``config.json`` setting: ``ElasticsearchSettings`` > ``Sniff`` > ``false`` | +| | - Environment variable: ``MM_ELASTICSEARCHSETTINGS_SNIFF`` | +| - **true**: Sniffing finds and connects to all data nodes | | +| in your cluster automatically. | | +| - **false**: **(Default)** Cluster sniffing is disabled. | | ++----------------------------------------------------------------+---------------------------------------------------------------------------------+ Select the **Test Connection** button in the System Console to validate the connection between Mattermost and the Elasticsearch or AWS OpenSearch server. @@ -1493,13 +1512,13 @@ Select the **Purge Indexes** button in the System Console to purge the index. Af Indexes to skip while purging ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -+---------------------------------------------------------------+---------------------------------------------------------------------------+ -| Specify index names to ignore while purging indexes. | - System Config path: **Environment > Elasticsearch** | -| Separate multiple index names with commas. | - ``config.json`` setting: ``ElasticsearchSettings.IgnoredPurgeIndexes`` | -| | - Environment variable: ``MM_ELASTICSEARCHSETTINGS_IGNOREDPURGEINDEXES`` | -| Use an asterisk (*) to match a sequence of index name | | -| characters. | | -+---------------------------------------------------------------+---------------------------------------------------------------------------+ ++---------------------------------------------------------------+---------------------------------------------------------------------------------+ +| Specify index names to ignore while purging indexes. | - System Config path: **Environment > Elasticsearch** | +| Separate multiple index names with commas. | - ``config.json`` setting: ``ElasticsearchSettings`` > ``IgnoredPurgeIndexes`` | +| | - Environment variable: ``MM_ELASTICSEARCHSETTINGS_IGNOREDPURGEINDEXES`` | +| Use an asterisk (*) to match a sequence of index name | | +| characters. | | ++---------------------------------------------------------------+---------------------------------------------------------------------------------+ .. config:setting:: enable-elasticsearch-for-search-queries :displayname: Enable Elasticsearch for search queries (Elasticsearch) @@ -1514,17 +1533,17 @@ Indexes to skip while purging Enable Elasticsearch for search queries ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -+---------------------------------------------------------------+---------------------------------------------------------------------------------+ -| Configure Mattermost to use Elasticsearch or AWS OpenSearch | - System Config path: **Environment > Elasticsearch** | -| for all search queries using the latest index. | - ``config.json`` setting: ``".Elasticsearchsettings.EnableSearching: false",`` | -| | - Environment variable: ``MM_ELASTICSEARCHSETTINGS_ENABLESEARCHING`` | -| - **true**: Elasticsearch or AWS OpenSearch is used for all | | -| search queries using the latest index. Search results may | | -| be incomplete until a bulk index of the existing message | | -| database is completed. | | -| - **false**: **(Default)** Database search is used for | | -| search queries. | | -+---------------------------------------------------------------+---------------------------------------------------------------------------------+ ++---------------------------------------------------------------+----------------------------------------------------------------------------------------+ +| Configure Mattermost to use Elasticsearch or AWS OpenSearch | - System Config path: **Environment > Elasticsearch** | +| for all search queries using the latest index. | - ``config.json`` setting: ``ElasticsearchSettings`` > ``EnableSearching`` > ``false`` | +| | - Environment variable: ``MM_ELASTICSEARCHSETTINGS_ENABLESEARCHING`` | +| - **true**: Elasticsearch or AWS OpenSearch is used for all | | +| search queries using the latest index. Search results may | | +| be incomplete until a bulk index of the existing message | | +| database is completed. | | +| - **false**: **(Default)** Database search is used for | | +| search queries. | | ++---------------------------------------------------------------+----------------------------------------------------------------------------------------+ If indexing is disabled and then re-enabled after an index is created, purge and rebuild the index to ensure complete search results. @@ -1541,16 +1560,16 @@ If indexing is disabled and then re-enabled after an index is created, purge and Enable Elasticsearch for autocomplete queries ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -+---------------------------------------------------------------+------------------------------------------------------------------------------------+ -| Configure Mattermost to use Elasticsearch or AWS OpenSearch | - System Config path: **Environment > Elasticsearch** | -| for all autocompletion queries on users and channels using | - ``config.json`` setting: ``".Elasticsearchsettings.EnableAutocomplete: false",`` | -| the latest index. | - Environment variable: ``MM_ELASTICSEARCHSETTINGS_ENABLEAUTOCOMPLETE`` | -| | | -| - **true**: Elasticsearch or AWS OpenSearch will be used for | | -| all autocompletion queries on users and channels using the | | -| latest index. | | -| - **false**: **(Default)** Database autocomplete is used. | | -+---------------------------------------------------------------+------------------------------------------------------------------------------------+ ++---------------------------------------------------------------+-------------------------------------------------------------------------------------------+ +| Configure Mattermost to use Elasticsearch or AWS OpenSearch | - System Config path: **Environment > Elasticsearch** | +| for all autocompletion queries on users and channels using | - ``config.json`` setting: ``ElasticsearchSettings`` > ``EnableAutocomplete`` > ``false`` | +| the latest index. | - Environment variable: ``MM_ELASTICSEARCHSETTINGS_ENABLEAUTOCOMPLETE`` | +| | | +| - **true**: Elasticsearch or AWS OpenSearch will be used for | | +| all autocompletion queries on users and channels using the | | +| latest index. | | +| - **false**: **(Default)** Database autocomplete is used. | | ++---------------------------------------------------------------+-------------------------------------------------------------------------------------------+ Autocompletion results may be incomplete until a bulk index of the existing users and channels database is finished. @@ -1564,11 +1583,11 @@ Autocompletion results may be incomplete until a bulk index of the existing user Post index replicas ~~~~~~~~~~~~~~~~~~~ -+---------------------------------------------------------------+-------------------------------------------------------------------------------+ -| The number of replicas to use for each post index. | - System Config path: N/A | -| | - ``config.json`` setting: ``".Elasticsearchsettings.PostIndexReplicas: 1",`` | -| Numerical input. Default is **1**. | - Environment variable: ``MM_ELASTICSEARCHSETTINGS_POSTINDEXREPLICAS`` | -+---------------------------------------------------------------+-------------------------------------------------------------------------------+ ++---------------------------------------------------------------+--------------------------------------------------------------------------------------+ +| The number of replicas to use for each post index. | - System Config path: N/A | +| | - ``config.json`` setting: ``ElasticsearchSettings`` > ``PostIndexReplicas`` > ``1`` | +| Numerical input. Default is **1**. | - Environment variable: ``MM_ELASTICSEARCHSETTINGS_POSTINDEXREPLICAS`` | ++---------------------------------------------------------------+--------------------------------------------------------------------------------------+ .. note:: @@ -1586,11 +1605,11 @@ Post index replicas Post index shards ~~~~~~~~~~~~~~~~~ -+---------------------------------------------------------------+-------------------------------------------------------------------------------+ -| The number of shards to use for each post index. | - System Config path: N/A | -| | - ``config.json`` setting: ``".Elasticsearchsettings.PostIndexShards: 1",`` | -| Numerical input. Default is **1**. | - Environment variable: ``MM_ELASTICSEARCHSETTINGS_POSTINDEXSHARDS`` | -+---------------------------------------------------------------+-------------------------------------------------------------------------------+ ++---------------------------------------------------------------+--------------------------------------------------------------------------------------+ +| The number of shards to use for each post index. | - System Config path: N/A | +| | - ``config.json`` setting: ``ElasticsearchSettings`` > ``PostIndexShards`` > ``1`` | +| Numerical input. Default is **1**. | - Environment variable: ``MM_ELASTICSEARCHSETTINGS_POSTINDEXSHARDS`` | ++---------------------------------------------------------------+--------------------------------------------------------------------------------------+ .. note:: @@ -1606,11 +1625,11 @@ Post index shards Channel index replicas ~~~~~~~~~~~~~~~~~~~~~~ -+---------------------------------------------------------------+----------------------------------------------------------------------------------+ -| The number of replicas to use for each channel index. | - System Config path: N/A | -| | - ``config.json`` setting: ``".Elasticsearchsettings.ChannelIndexReplicas: 1",`` | -| Numerical input. Default is **1**. | - Environment variable: ``MM_ELASTICSEARCHSETTINGS_CHANNELINDEXREPLICAS`` | -+---------------------------------------------------------------+----------------------------------------------------------------------------------+ ++---------------------------------------------------------------+-----------------------------------------------------------------------------------------+ +| The number of replicas to use for each channel index. | - System Config path: N/A | +| | - ``config.json`` setting: ``ElasticsearchSettings`` > ``ChannelIndexReplicas`` > ``1`` | +| Numerical input. Default is **1**. | - Environment variable: ``MM_ELASTICSEARCHSETTINGS_CHANNELINDEXREPLICAS`` | ++---------------------------------------------------------------+-----------------------------------------------------------------------------------------+ .. note:: @@ -1626,11 +1645,11 @@ Channel index replicas Channel index shards ~~~~~~~~~~~~~~~~~~~~ -+---------------------------------------------------------------+----------------------------------------------------------------------------------+ -| The number of shards to use for each channel index. | - System Config path: N/A | -| | - ``config.json`` setting: ``".Elasticsearchsettings.ChannelIndexShards: 1",`` | -| Numerical input. Default is **1**. | - Environment variable: ``MM_ELASTICSEARCHSETTINGS_CHANNELINDEXSHARDS`` | -+---------------------------------------------------------------+----------------------------------------------------------------------------------+ ++---------------------------------------------------------------+-----------------------------------------------------------------------------------------+ +| The number of shards to use for each channel index. | - System Config path: N/A | +| | - ``config.json`` setting: ``ElasticsearchSettings`` > ``ChannelIndexShards`` > ``1`` | +| Numerical input. Default is **1**. | - Environment variable: ``MM_ELASTICSEARCHSETTINGS_CHANNELINDEXSHARDS`` | ++---------------------------------------------------------------+-----------------------------------------------------------------------------------------+ .. config:setting:: user-index-replicas :displayname: User index replicas (Elasticsearch) @@ -1642,11 +1661,11 @@ Channel index shards User index replicas ~~~~~~~~~~~~~~~~~~~ -+---------------------------------------------------------------+-------------------------------------------------------------------------------+ -| The number of replicas to use for each user index. | - System Config path: N/A | -| | - ``config.json`` setting: ``".Elasticsearchsettings.UserIndexReplicas: 1",`` | -| Numerical input. Default is **1**. | - Environment variable: ``MM_ELASTICSEARCHSETTINGS_USERINDEXREPLICAS`` | -+---------------------------------------------------------------+-------------------------------------------------------------------------------+ ++---------------------------------------------------------------+--------------------------------------------------------------------------------------+ +| The number of replicas to use for each user index. | - System Config path: N/A | +| | - ``config.json`` setting: ``ElasticsearchSettings`` > ``UserIndexReplicas`` > ``1`` | +| Numerical input. Default is **1**. | - Environment variable: ``MM_ELASTICSEARCHSETTINGS_USERINDEXREPLICAS`` | ++---------------------------------------------------------------+--------------------------------------------------------------------------------------+ .. note:: @@ -1662,11 +1681,11 @@ User index replicas User index shards ~~~~~~~~~~~~~~~~~ -+---------------------------------------------------------------+----------------------------------------------------------------------------------+ -| The number of shards to use for each user index. | - System Config path: N/A | -| | - ``config.json`` setting: ``".Elasticsearchsettings.UserIndexShards: 1",`` | -| Numerical input. Default is **1**. | - Environment variable: ``MM_ELASTICSEARCHSETTINGS_USERINDEXSHARDS`` | -+---------------------------------------------------------------+----------------------------------------------------------------------------------+ ++---------------------------------------------------------------+-------------------------------------------------------------------------------------+ +| The number of shards to use for each user index. | - System Config path: N/A | +| | - ``config.json`` setting: ``ElasticsearchSettings`` > ``UserIndexShards`` > ``1`` | +| Numerical input. Default is **1**. | - Environment variable: ``MM_ELASTICSEARCHSETTINGS_USERINDEXSHARDS`` | ++---------------------------------------------------------------+-------------------------------------------------------------------------------------+ .. config:setting:: aggregate-search-indexes :displayname: Aggregate search indexes (Elasticsearch) @@ -1678,13 +1697,13 @@ User index shards Aggregate search indexes ~~~~~~~~~~~~~~~~~~~~~~~~ -+---------------------------------------------------------------+----------------------------------------------------------------------------------------+ -| Elasticsearch or AWS OpenSearch indexes older than the age | - System Config path: N/A | -| specified by this setting, in days, will be aggregated during | - ``config.json`` setting: ``".Elasticsearchsettings.AggregatePostsAfterDays: 365",`` | -| the daily scheduled job. | - Environment variable: ``MM_ELASTICSEARCHSETTINGS_AGGREGATEPOSTSAFTERDAYS`` | -| | | -| Numerical input. Default is **365** days. | | -+---------------------------------------------------------------+----------------------------------------------------------------------------------------+ ++---------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ +| Elasticsearch or AWS OpenSearch indexes older than the age | - System Config path: N/A | +| specified by this setting, in days, will be aggregated during | - ``config.json`` setting: ``ElasticsearchSettings`` > ``AggregatePostsAfterDays`` > ``365`` | +| the daily scheduled job. | - Environment variable: ``MM_ELASTICSEARCHSETTINGS_AGGREGATEPOSTSAFTERDAYS`` | +| | | +| Numerical input. Default is **365** days. | | ++---------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ .. note:: @@ -1700,14 +1719,14 @@ Aggregate search indexes Post aggregator start time ~~~~~~~~~~~~~~~~~~~~~~~~~~ -+---------------------------------------------------------------+---------------------------------------------------------------------------------------------+ -| The start time of the daily scheduled aggregator job. | - System Config path: N/A | -| | - ``config.json`` setting: ``".Elasticsearchsettings.PostsAggregatorJobStartTime: 03:00",`` | -| Must be a 24-hour time stamp in the form ``HH:MM`` based on | - Environment variable: ``MM_ELASTICSEARCHSETTINGS_POSTSAGGREGATORJOBSTARTTIME`` | -| the local time of the server. | | -| | | -| Default is **03:00** (3 AM) | | -+---------------------------------------------------------------+---------------------------------------------------------------------------------------------+ ++---------------------------------------------------------------+------------------------------------------------------------------------------------------------------+ +| The start time of the daily scheduled aggregator job. | - System Config path: N/A | +| | - ``config.json`` setting: ``ElasticsearchSettings`` > ``PostsAggregatorJobStartTime`` > ``"03:00"`` | +| Must be a 24-hour time stamp in the form ``HH:MM`` based on | - Environment variable: ``MM_ELASTICSEARCHSETTINGS_POSTSAGGREGATORJOBSTARTTIME`` | +| the local time of the server. | | +| | | +| Default is **03:00** (3 AM) | | ++---------------------------------------------------------------+------------------------------------------------------------------------------------------------------+ .. config:setting:: index-prefix :displayname: Index prefix (Elasticsearch) @@ -1721,7 +1740,7 @@ Index prefix +---------------------------------------------------------------+--------------------------------------------------------------------------+ | The prefix added to the Elasticsearch or AWS OpenSearch | - System Config path: N/A | -| index name. | - ``config.json`` setting: ``".Elasticsearchsettings.IndexPrefix",`` | +| index name. | - ``config.json`` setting: ``ElasticsearchSettings`` > ``IndexPrefix`` | | | - Environment variable: ``MM_ELASTICSEARCHSETTINGS_INDEXPREFIX`` | +---------------------------------------------------------------+--------------------------------------------------------------------------+ @@ -1739,17 +1758,17 @@ Index prefix Global search prefix ~~~~~~~~~~~~~~~~~~~~ -+---------------------------------------------------------------+------------------------------------------------------------------------------+ -| Enable global search across multiple Elasticsearch indices | - System Config path: N/A | -| with the same `index prefix <#index-prefix>`__. | - ``config.json`` setting: ``".Elasticsearchsettings.GlobalSearchPrefix",`` | -| | - Environment variable: ``MM_ELASTICSEARCHSETTINGS_GLOBALSEARCHPREFIX`` | -| This is helpful for setups with multiple data centers where | | -| Elasticsearch instances share data using cross-cluster | | -| replication. It allows for easier and unified searching | | -| across distributed indices. | | -| | | -| Value must be a prefix of ``IndexPrefix``. | | -+---------------------------------------------------------------+------------------------------------------------------------------------------+ ++---------------------------------------------------------------+-------------------------------------------------------------------------------+ +| Enable global search across multiple Elasticsearch indices | - System Config path: N/A | +| with the same `index prefix <#index-prefix>`__. | - ``config.json`` setting: ``ElasticsearchSettings`` > ``GlobalSearchPrefix`` | +| | - Environment variable: ``MM_ELASTICSEARCHSETTINGS_GLOBALSEARCHPREFIX`` | +| This is helpful for setups with multiple data centers where | | +| Elasticsearch instances share data using cross-cluster | | +| replication. It allows for easier and unified searching | | +| across distributed indices. | | +| | | +| Value must be a prefix of ``IndexPrefix``. | | ++---------------------------------------------------------------+-------------------------------------------------------------------------------+ .. config:setting:: live-indexing-batch-size :displayname: Live indexing batch size (Elasticsearch) @@ -1761,18 +1780,18 @@ Global search prefix Live indexing batch size ~~~~~~~~~~~~~~~~~~~~~~~~ -+---------------------------------------------------------------+-----------------------------------------------------------------------------------+ -| The number of new posts needed before those posts are added | - System Config path: N/A | -| to the Elasticsearch or AWS OpenSearch index. Once added to | - ``config.json`` setting: ``".Elasticsearchsettings.LiveIndexingBatchSize: 1",`` | -| the index, the post becomes searchable. | - Environment variable: ``MM_ELASTICSEARCHSETTINGS_LIVEINDEXINGBATCHSIZE`` | -| | | -| On servers with more than 1 post per second, we suggest | | -| setting this value to the average number of posts over a | | -| 20 second period of time. | | -| | | -| Numerical input. Default is **1**. Every post is indexed | | -| synchronously as they are created. | | -+---------------------------------------------------------------+-----------------------------------------------------------------------------------+ ++---------------------------------------------------------------+------------------------------------------------------------------------------------------+ +| The number of new posts needed before those posts are added | - System Config path: N/A | +| to the Elasticsearch or AWS OpenSearch index. Once added to | - ``config.json`` setting: ``ElasticsearchSettings`` > ``LiveIndexingBatchSize`` > ``1`` | +| the index, the post becomes searchable. | - Environment variable: ``MM_ELASTICSEARCHSETTINGS_LIVEINDEXINGBATCHSIZE`` | +| | | +| On servers with more than 1 post per second, we suggest | | +| setting this value to the average number of posts over a | | +| 20 second period of time. | | +| | | +| Numerical input. Default is **1**. Every post is indexed | | +| synchronously as they are created. | | ++---------------------------------------------------------------+------------------------------------------------------------------------------------------+ .. note:: @@ -1842,12 +1861,12 @@ During busy periods, this delay will be faster as more traffic is occurring, cau Batch size ~~~~~~~~~~~ -+-------------------------------------------+---------------------------------------------------------------------------+ -| The number of posts for a single batch | - System Config path: N/A | -| during a bulk indexing job. | - ``config.json`` setting: ``".Elasticsearchsettings.BatchSize :10000",`` | -| | - Environment variable: ``MM_ELASTICSEARCHSETTINGS_BATCHSIZE`` | -| Numerical input. Default is **10000**. | | -+-------------------------------------------+---------------------------------------------------------------------------+ ++-------------------------------------------+----------------------------------------------------------------------------------+ +| The number of posts for a single batch | - System Config path: N/A | +| during a bulk indexing job. | - ``config.json`` setting: ``ElasticsearchSettings`` > ``BatchSize`` > ``10000`` | +| | - Environment variable: ``MM_ELASTICSEARCHSETTINGS_BATCHSIZE`` | +| Numerical input. Default is **10000**. | | ++-------------------------------------------+----------------------------------------------------------------------------------+ .. config:setting:: request-timeout :displayname: Request timeout (Elasticsearch) @@ -1859,12 +1878,12 @@ Batch size Request timeout ~~~~~~~~~~~~~~~ -+---------------------------------------------------------------+------------------------------------------------------------------------------------+ -| The timeout, in seconds, for Elasticsearch or AWS OpenSearch | - System Config path: N/A | -| calls. | - ``config.json`` setting: ``".Elasticsearchsettings.RequestTimeoutSeconds :30",`` | -| | - Environment variable: ``MM_ELASTICSEARCHSETTINGS_REQUESTTIMEOUTSECONDS`` | -| Numerical input in seconds. Default is **30** seconds. | | -+---------------------------------------------------------------+------------------------------------------------------------------------------------+ ++---------------------------------------------------------------+-------------------------------------------------------------------------------------------+ +| The timeout, in seconds, for Elasticsearch or AWS OpenSearch | - System Config path: N/A | +| calls. | - ``config.json`` setting: ``ElasticsearchSettings`` > ``RequestTimeoutSeconds`` > ``30`` | +| | - Environment variable: ``MM_ELASTICSEARCHSETTINGS_REQUESTTIMEOUTSECONDS`` | +| Numerical input in seconds. Default is **30** seconds. | | ++---------------------------------------------------------------+-------------------------------------------------------------------------------------------+ .. config:setting:: trace :displayname: Trace (Elasticsearch) @@ -1882,7 +1901,7 @@ Trace +---------------------------------------------------------------------+--------------------------------------------------------------------------+ | Options for printing Elasticsearch or AWS OpenSearch trace errors. | - System Config path: N/A | -| | - ``config.json`` setting: ``".Elasticsearchsettings.Trace",`` | +| | - ``config.json`` setting: ``ElasticsearchSettings`` > ``Trace`` | | - **error**: Creates the error trace when initializing | - Environment variable: ``MM_ELASTICSEARCHSETTINGS_TRACE`` | | the Elasticsearch or AWS OpenSearch client and prints any | | | template creation or search query that returns an error as part | | @@ -1923,17 +1942,17 @@ Configure file storage settings by going to **System Console > Environment > Fil File storage system ~~~~~~~~~~~~~~~~~~~ -+---------------------------------------------------------------+--------------------------------------------------------------------------+ -| The type of file storage system used. | - System Config path: **Environment > File Storage** | -| Can be either Local File System or Amazon S3. | - ``config.json`` setting: ``".FileSettings.DriverName: local”,`` | -| | - Environment variable: ``MM_FILESETTINGS_DRIVERNAME`` | -| - **local**: **(Default)** Files and images are stored in | | -| the specified local file directory. | | -| - **amazons3**: Files and images are stored on Amazon S3 | | -| based on the access key, bucket, and region fields | | -| provided. The driver is compatible with MinIO (Beta) | | -| and Digital Ocean Spaces. | | -+---------------------------------------------------------------+--------------------------------------------------------------------------+ ++---------------------------------------------------------------+-----------------------------------------------------------------------------+ +| The type of file storage system used. | - System Config path: **Environment > File Storage** | +| Can be either Local File System or Amazon S3. | - ``config.json`` setting: ``FileSettings`` > ``DriverName`` > ``"local"`` | +| | - Environment variable: ``MM_FILESETTINGS_DRIVERNAME`` | +| - **local**: **(Default)** Files and images are stored in | | +| the specified local file directory. | | +| - **amazons3**: Files and images are stored on Amazon S3 | | +| based on the access key, bucket, and region fields | | +| provided. The driver is compatible with MinIO (Beta) | | +| and Digital Ocean Spaces. | | ++---------------------------------------------------------------+-----------------------------------------------------------------------------+ .. config:setting:: local-storage-directory :displayname: Local storage directory (File Storage) @@ -1947,7 +1966,7 @@ Local storage directory +---------------------------------------------------------------+--------------------------------------------------------------------------+ | The local directory to which files are written when the | - System Config path: **Environment > File Storage** | -| **File storage system** is set to **local**. | - ``config.json`` setting: ``".FileSettings.Directory”,`` | +| **File storage system** is set to **local**. | - ``config.json`` setting: ``FileSettings`` > ``Directory`` | | Can be any directory writable by the user Mattermost is | - Environment variable: ``MM_FILESETTINGS_DIRECTORY`` | | running as, and is relative to the directory where | | | Mattermost is installed. | | @@ -1967,13 +1986,13 @@ When **File storage system** is set to **amazons3**, this setting has no effect. Maximum file size ~~~~~~~~~~~~~~~~~ -+-------------------------------------------------------------------+--------------------------------------------------------------------------+ -| The maximum file size for message attachments and plugin | - System Config path: **Environment > File Storage** | -| uploads. This value must be specified in mebibytes in the | - ``config.json`` setting: ``".FileSettings.MaxFileSize: 104857600",`` | -| System Console, and in bytes in the ``config.json`` file. | - Environment variable: ``MM_FILESETTINGS_MAXFILESIZE`` | -| | | -| The default is ``104857600`` bytes (**100** mebibytes). | | -+-------------------------------------------------------------------+--------------------------------------------------------------------------+ ++-------------------------------------------------------------------+---------------------------------------------------------------------------------+ +| The maximum file size for message attachments and plugin | - System Config path: **Environment > File Storage** | +| uploads. This value must be specified in mebibytes in the | - ``config.json`` setting: ``FileSettings`` > ``MaxFileSize`` > ``104857600`` | +| System Console, and in bytes in the ``config.json`` file. | - Environment variable: ``MM_FILESETTINGS_MAXFILESIZE`` | +| | | +| The default is ``104857600`` bytes (**100** mebibytes). | | ++-------------------------------------------------------------------+---------------------------------------------------------------------------------+ .. note:: @@ -1999,7 +2018,7 @@ Enable document search by content +---------------------------------------------------------------+-------------------------------------------------------------------------------------+ | Enable users to search the contents of documents attached | - System Config path: **Environment > File Storage** | -| to messages. | - ``config.json`` setting: ``".FileSettings.ExtractContent: true",`` | +| to messages. | - ``config.json`` setting: ``FileSettings`` > ``ExtractContent`` > ``true`` | | | - Environment variable: ``MM_FILESETTINGS_EXTRACTCONTENT`` | | - **true**: **(Default)** Documents are searchable by | | | their content. | | @@ -2037,7 +2056,7 @@ Enable searching content of documents within ZIP files +---------------------------------------------------------------+----------------------------------------------------------------------------------------+ | Enables users to search the contents of compressed ZIP files | - System Config path: **Environment > File Storage** | -| attached to messages. | - ``config.json`` setting: ``".FileSettings.ArchiveRecursion: false",`` | +| attached to messages. | - ``config.json`` setting: ``FileSettings`` > ``ArchiveRecursion`` > ``false`` | | | - Environment variable: ``MM_FILESETTINGS_ARCHIVERECURSION`` | | - **true**: Contents of documents within ZIP files are | | | returned in search results. This may have an impact on | | @@ -2065,7 +2084,7 @@ Amazon S3 bucket +---------------------------------------------------------------+--------------------------------------------------------------------------+ | The name of the bucket for your S3-compatible object | - System Config path: **Environment > File Storage** | -| storage instance. | - ``config.json`` setting: ``".FileSettings.AmazonS3Bucket",`` | +| storage instance. | - ``config.json`` setting: ``FileSettings`` > ``AmazonS3Bucket`` | | | - Environment variable: ``MM_FILESETTINGS_AMAZONS3BUCKET`` | | A string with the S3-compatible bucket name. | | +---------------------------------------------------------------+--------------------------------------------------------------------------+ @@ -2082,7 +2101,7 @@ Amazon S3 path prefix +---------------------------------------------------------------+--------------------------------------------------------------------------+ | The prefix you selected for your **Amazon S3 bucket** in AWS. | - System Config path: N/A | -| | - ``config.json`` setting: ``".FileSettings.AmazonS3PathPrefix",`` | +| | - ``config.json`` setting: ``FileSettings`` > ``AmazonS3PathPrefix`` | | A string containing the path prefix. | - Environment variable: ``MM_FILESETTINGS_AMAZONS3PATHPREFIX`` | +---------------------------------------------------------------+--------------------------------------------------------------------------+ @@ -2120,7 +2139,7 @@ Amazon S3 access key ID +---------------------------------------------------------------+--------------------------------------------------------------------------+ | A string with the access key for the S3-compatible storage | - System Config path: **Environment > File Storage** | -| instance. Your EC2 administrator can supply you with the | - ``config.json`` setting: ``".FileSettings.AmazonS3AccessKeyId",`` | +| instance. Your EC2 administrator can supply you with the | - ``config.json`` setting: ``FileSettings`` > ``AmazonS3AccessKeyId`` | | Access Key ID. | - Environment variable: ``MM_FILESETTINGS_AMAZONS3ACCESSKEYID`` | +---------------------------------------------------------------+--------------------------------------------------------------------------+ @@ -2138,12 +2157,12 @@ Amazon S3 access key ID Amazon S3 endpoint ~~~~~~~~~~~~~~~~~~ -+---------------------------------------------------------------+------------------------------------------------------------------------------------+ -| The hostname of your S3-compatible instance. | - System Config path: **Environment > File Storage** | -| | - ``config.json`` setting: ``".FileSettings.AmazonS3Endpoint: s3.amazonaws.com",`` | -| A string with the hostname of the S3-compatible storage | - Environment variable: ``MM_FILESETTINGS_AMAZONS3ENDPOINT`` | -| instance. Defaults to **s3.amazonaws.com**. | | -+---------------------------------------------------------------+------------------------------------------------------------------------------------+ ++---------------------------------------------------------------+---------------------------------------------------------------------------------------------+ +| The hostname of your S3-compatible instance. | - System Config path: **Environment > File Storage** | +| | - ``config.json`` setting: ``FileSettings`` > ``AmazonS3Endpoint`` > ``"s3.amazonaws.com"`` | +| A string with the hostname of the S3-compatible storage | - Environment variable: ``MM_FILESETTINGS_AMAZONS3ENDPOINT`` | +| instance. Defaults to **s3.amazonaws.com**. | | ++---------------------------------------------------------------+---------------------------------------------------------------------------------------------+ .. note:: @@ -2159,13 +2178,13 @@ Amazon S3 endpoint Amazon S3 secret access key ~~~~~~~~~~~~~~~~~~~~~~~~~~~ -+---------------------------------------------------------------+--------------------------------------------------------------------------+ -| The secret access key associated with your Amazon S3 | - System Config path: **Environment > File Storage** | -| Access Key ID. | - ``config.json`` setting: ``".FileSettings.AmazonS3SecretAccessKey",`` | -| | - Environment variable: ``MM_FILESETTINGS_AMAZONS3SECRETACCESSKEY`` | -| A string with the secret access key for the S3-compatible | | -| storage instance. | | -+---------------------------------------------------------------+--------------------------------------------------------------------------+ ++---------------------------------------------------------------+----------------------------------------------------------------------------+ +| The secret access key associated with your Amazon S3 | - System Config path: **Environment > File Storage** | +| Access Key ID. | - ``config.json`` setting: ``FileSettings`` > ``AmazonS3SecretAccessKey`` | +| | - Environment variable: ``MM_FILESETTINGS_AMAZONS3SECRETACCESSKEY`` | +| A string with the secret access key for the S3-compatible | | +| storage instance. | | ++---------------------------------------------------------------+----------------------------------------------------------------------------+ .. config:setting:: enable-secure-amazon-s3-connections :displayname: Enable secure Amazon S3 connections (File Storage) @@ -2179,7 +2198,7 @@ Enable secure Amazon S3 connections +---------------------------------------------------------------+--------------------------------------------------------------------------+ | Enable or disable secure Amazon S3 connections. | - System Config path: **Environment > File Storage** | -| | - ``config.json`` setting: ``".FileSettings.AmazonS3SSL: true",`` | +| | - ``config.json`` setting: ``FileSettings`` > ``AmazonS3SSL`` > ``true`` | | - **true**: **(Default)** Enables only secure Amazon | - Environment variable: ``MM_FILESETTINGS_AMAZONS3SSL`` | | S3 connections. | | | - **false**: Allows insecure connections to Amazon S3. | | @@ -2197,13 +2216,13 @@ Enable secure Amazon S3 connections Amazon S3 signature v2 ~~~~~~~~~~~~~~~~~~~~~~ -+---------------------------------------------------------------+--------------------------------------------------------------------------+ -| By default, Mattermost uses Signature v4 to sign API calls | - System Config path: N/A | -| to AWS, but under some circumstances, v2 is required. | - ``config.json`` setting: ``".FileSettings.AmazonS3SignV2: false",`` | -| | - Environment variable: ``MM_FILESETTINGS_AMAZONS3SIGNV2`` | -| - **true**: Use Signature v2 signing process. | | -| - **false**: **(Default)** Use Signature v4 signing process. | | -+---------------------------------------------------------------+--------------------------------------------------------------------------+ ++---------------------------------------------------------------+------------------------------------------------------------------------------+ +| By default, Mattermost uses Signature v4 to sign API calls | - System Config path: N/A | +| to AWS, but under some circumstances, v2 is required. | - ``config.json`` setting: ``FileSettings`` > ``AmazonS3SignV2`` > ``false`` | +| | - Environment variable: ``MM_FILESETTINGS_AMAZONS3SIGNV2`` | +| - **true**: Use Signature v2 signing process. | | +| - **false**: **(Default)** Use Signature v4 signing process. | | ++---------------------------------------------------------------+------------------------------------------------------------------------------+ See the `AWS `_ documentation for information about when to use the Signature v2 signing process. @@ -2222,14 +2241,14 @@ Enable server-side encryption for Amazon S3 .. include:: ../../_static/badges/ent-selfhosted.rst :start-after: :nosearch: -+---------------------------------------------------------------+--------------------------------------------------------------------------+ -| Enable server-side encryption for Amazon S3. | - System Config path: **Environment > File Storage** | -| | - ``config.json`` setting: ``".FileSettings.AmazonS3SSE: false",`` | -| - **true**: Encrypts files in Amazon S3 using server-side | - Environment variable: ``MM_FILESETTINGS_AMAZONS3SSE`` | -| encryption with Amazon S3-managed keys. | | -| - **false**: **(Default)** Doesn’t encrypt files in | | -| Amazon S3. | | -+---------------------------------------------------------------+--------------------------------------------------------------------------+ ++---------------------------------------------------------------+-----------------------------------------------------------------------------+ +| Enable server-side encryption for Amazon S3. | - System Config path: **Environment > File Storage** | +| | - ``config.json`` setting: ``FileSettings`` > ``AmazonS3SSE`` > ``false`` | +| - **true**: Encrypts files in Amazon S3 using server-side | - Environment variable: ``MM_FILESETTINGS_AMAZONS3SSE`` | +| encryption with Amazon S3-managed keys. | | +| - **false**: **(Default)** Doesn’t encrypt files in | | +| Amazon S3. | | ++---------------------------------------------------------------+-----------------------------------------------------------------------------+ .. config:setting:: enable-amazon-s3-debugging :displayname: Enable Amazon S3 debugging (File Storage) @@ -2243,16 +2262,16 @@ Enable server-side encryption for Amazon S3 Enable Amazon S3 debugging ~~~~~~~~~~~~~~~~~~~~~~~~~~ -+---------------------------------------------------------------+--------------------------------------------------------------------------+ -| Enable or disable Amazon S3 debugging to capture additional | - System Config path: **Environment > File Storage** | -| debugging information in system logs. | - ``config.json`` setting: ``".FileSettings.AmazonS3Trace: false",`` | -| | - Environment variable: ``MM_FILESETTINGS_AMAZONS3TRACE`` | -| - **true**: Log additional debugging information is logged | | -| to the system logs. | | -| - **false**: **(Default)** No Amazon S3 debugging information | | -| is included in the system logs. Typically set to **false** | | -| in production. | | -+---------------------------------------------------------------+--------------------------------------------------------------------------+ ++---------------------------------------------------------------+-----------------------------------------------------------------------------+ +| Enable or disable Amazon S3 debugging to capture additional | - System Config path: **Environment > File Storage** | +| debugging information in system logs. | - ``config.json`` setting: ``FileSettings`` > ``AmazonS3Trace`` > ``false`` | +| | - Environment variable: ``MM_FILESETTINGS_AMAZONS3TRACE`` | +| - **true**: Log additional debugging information is logged | | +| to the system logs. | | +| - **false**: **(Default)** No Amazon S3 debugging information | | +| is included in the system logs. Typically set to **false** | | +| in production. | | ++---------------------------------------------------------------+-----------------------------------------------------------------------------+ Select the **Test Connection** button in the System Console to validate the settings and ensure the user can access the server. @@ -2268,13 +2287,13 @@ Amazon S3 storage class Some Amazon S3-compatible storage solutions require the storage class parameter to be present in upload requests, otherwise they will be rejected. Configure this storage class as the storage class required by your S3-compatible solution. -+---------------------------------------------------------------+--------------------------------------------------------------------------+ -| The storage class to use for uploads to S3-compatible | - System Config path: **Environment > File Storage** | -| storage solutions. | - ``config.json`` setting: ``.FileSettings.AmazonS3StorageClass: ""``, | -| | - Environment variable: ``MM_FILESETTINGS_AMAZONS3STORAGECLASS`` | -| String input. Default is an empty string ``""``. | | -| Select **Test Connection** to test the configured connection. | | -+---------------------------------------------------------------+--------------------------------------------------------------------------+ ++---------------------------------------------------------------+------------------------------------------------------------------------------------+ +| The storage class to use for uploads to S3-compatible | - System Config path: **Environment > File Storage** | +| storage solutions. | - ``config.json`` setting: ``FileSettings`` > ``AmazonS3StorageClass`` > ``""``, | +| | - Environment variable: ``MM_FILESETTINGS_AMAZONS3STORAGECLASS`` | +| String input. Default is an empty string ``""``. | | +| Select **Test Connection** to test the configured connection. | | ++---------------------------------------------------------------+------------------------------------------------------------------------------------+ .. note:: @@ -2290,12 +2309,12 @@ Some Amazon S3-compatible storage solutions require the storage class parameter Export Amazon S3 storage class ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -+---------------------------------------------------------------+---------------------------------------------------------------------------------+ -| The storage class to use for exports to S3-compatible | - System Config path: N/A | -| storage solutions. | - ``config.json`` setting: ``.FileSettings.ExportAmazonS3StorageClass: "",`` | -| | - Environment variable: ``MM_FILESETTINGS_EXPORTAMAZONS3STORAGECLASS`` | -| String input. Default is an empty string ``""``. | | -+---------------------------------------------------------------+---------------------------------------------------------------------------------+ ++---------------------------------------------------------------+----------------------------------------------------------------------------------------+ +| The storage class to use for exports to S3-compatible | - System Config path: N/A | +| storage solutions. | - ``config.json`` setting: ``FileSettings`` > ``ExportAmazonS3StorageClass`` > ``""`` | +| | - Environment variable: ``MM_FILESETTINGS_EXPORTAMAZONS3STORAGECLASS`` | +| String input. Default is an empty string ``""``. | | ++---------------------------------------------------------------+----------------------------------------------------------------------------------------+ .. note:: @@ -2311,12 +2330,12 @@ Export Amazon S3 storage class Amazon S3 request timeout ~~~~~~~~~~~~~~~~~~~~~~~~~ -+---------------------------------------------------------------+-----------------------------------------------------------------------------------------+ -| The amount of time, in milliseconds, before requests to | - System Config path: N/A | -| Amazon S3 storage time out. | - ``config.json`` setting: ``".FileSettings.AmazonS3RequestTimeoutMilliseconds: 30000`` | -| | - Environment variable: ``MM_FILESETTINGS_AMAZONS3REQUESTTIMEOUTMILLISECONDS`` | -| Default is 30000 (30 seconds). | | -+---------------------------------------------------------------+-----------------------------------------------------------------------------------------+ ++---------------------------------------------------------------+--------------------------------------------------------------------------------------------------+ +| The amount of time, in milliseconds, before requests to | - System Config path: N/A | +| Amazon S3 storage time out. | - ``config.json`` setting: ``FileSettings`` > ``AmazonS3RequestTimeoutMilliseconds`` > ``30000`` | +| | - Environment variable: ``MM_FILESETTINGS_AMAZONS3REQUESTTIMEOUTMILLISECONDS`` | +| Default is 30000 (30 seconds). | | ++---------------------------------------------------------------+--------------------------------------------------------------------------------------------------+ .. config:setting:: amazon-s3-upload-part-size :displayname: Amazon S3 upload part size (File Storage) @@ -2328,12 +2347,12 @@ Amazon S3 request timeout Amazon S3 upload part size ~~~~~~~~~~~~~~~~~~~~~~~~~~~ -+---------------------------------------------------------------+---------------------------------------------------------------------------------------+ -| The size, in bytes, of each part in a multi-part | - System Config path: N/A | -| upload to Amazon S3. | - ``config.json`` setting: ``".FileSettings.AmazonS3UploadPartSizeBytes: 5242880`` | -| | - Environment variable: ``MM_FILESETTINGS_AMAZONS3UPLOADPARTSIZEBYTES`` | -| Numeric value. Default is 5242880 (5MB). | | -+---------------------------------------------------------------+---------------------------------------------------------------------------------------+ ++---------------------------------------------------------------+------------------------------------------------------------------------------------------------+ +| The size, in bytes, of each part in a multi-part | - System Config path: N/A | +| upload to Amazon S3. | - ``config.json`` setting: ``FileSettings`` > ``AmazonS3UploadPartSizeBytes`` > ``5242880`` | +| | - Environment variable: ``MM_FILESETTINGS_AMAZONS3UPLOADPARTSIZEBYTES`` | +| Numeric value. Default is 5242880 (5MB). | | ++---------------------------------------------------------------+------------------------------------------------------------------------------------------------+ .. note:: @@ -2349,12 +2368,12 @@ Amazon S3 upload part size Amazon S3 exported upload part size ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -+---------------------------------------------------------------+--------------------------------------------------------------------------------------------+ -| The size, in bytes, of each part in a multi-part | - System Config path: N/A | -| exported to Amazon S3. | - ``config.json`` setting: ``".FileSettings.ExportAmazonS3UploadPartSizeBytes: 104857600`` | -| | - Environment variable: ``MM_FILESETTINGS_EXPORTAMAZONS3UPLOADPARTSIZEBYTES`` | -| Numeric value. Default is 104857600 (100MB). | | -+---------------------------------------------------------------+--------------------------------------------------------------------------------------------+ ++---------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+ +| The size, in bytes, of each part in a multi-part | - System Config path: N/A | +| exported to Amazon S3. | - ``config.json`` setting: ``FileSettings`` > ``ExportAmazonS3UploadPartSizeBytes`` > ``104857600`` | +| | - Environment variable: ``MM_FILESETTINGS_EXPORTAMAZONS3UPLOADPARTSIZEBYTES`` | +| Numeric value. Default is 104857600 (100MB). | | ++---------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+ .. note:: @@ -2370,12 +2389,12 @@ Amazon S3 exported upload part size Amazon S3 request timeout ~~~~~~~~~~~~~~~~~~~~~~~~~ -+---------------------------------------------------------------+-----------------------------------------------------------------------------------------+ -| The amount of time, in milliseconds, before requests to | - System Config path: N/A | -| Amazon S3 storage time out. | - ``config.json`` setting: ``".FileSettings.AmazonS3RequestTimeoutMilliseconds: 30000`` | -| | - Environment variable: ``MM_FILESETTINGS_AMAZONS3REQUESTTIMEOUTMILLISECONDS`` | -| Default is 30000 (30 seconds). | | -+---------------------------------------------------------------+-----------------------------------------------------------------------------------------+ ++---------------------------------------------------------------+--------------------------------------------------------------------------------------------------+ +| The amount of time, in milliseconds, before requests to | - System Config path: N/A | +| Amazon S3 storage time out. | - ``config.json`` setting: ``FileSettings`` > ``AmazonS3RequestTimeoutMilliseconds`` > ``30000`` | +| | - Environment variable: ``MM_FILESETTINGS_AMAZONS3REQUESTTIMEOUTMILLISECONDS`` | +| Default is 30000 (30 seconds). | | ++---------------------------------------------------------------+--------------------------------------------------------------------------------------------------+ .. config:setting:: initial-font :displayname: Initial font (File Storage) @@ -2387,13 +2406,13 @@ Amazon S3 request timeout Initial font ~~~~~~~~~~~~ -+---------------------------------------------------------------+--------------------------------------------------------------------------------+ -| The font used in auto-generated profile pictures with colored | - System Config path: N/A | -| backgrounds and username initials. | - ``config.json`` setting: ``".FileSettings.InitialFont: nunito-bold.ttf",`` | -| | - Environment variable: ``MM_FILESETTINGS_INITIALFONT`` | -| A string with the font file name. Default is | | -| **nunito-bold.ttf**. | | -+---------------------------------------------------------------+--------------------------------------------------------------------------------+ ++---------------------------------------------------------------+-----------------------------------------------------------------------------------------+ +| The font used in auto-generated profile pictures with colored | - System Config path: N/A | +| backgrounds and username initials. | - ``config.json`` setting: ``FileSettings`` > ``InitialFont`` > ``"nunito-bold.ttf"`` | +| | - Environment variable: ``MM_FILESETTINGS_INITIALFONT`` | +| A string with the font file name. Default is | | +| **nunito-bold.ttf**. | | ++---------------------------------------------------------------+-----------------------------------------------------------------------------------------+ ---- @@ -2417,14 +2436,14 @@ An image proxy is used by Mattermost apps to prevent them from connecting direct Enable image proxy ~~~~~~~~~~~~~~~~~~ -+---------------------------------------------------------------+---------------------------------------------------------------------+ -| An image proxy anonymizes Mattermost app connections and | - System Config path: **Environment > Image Proxy** | -| prevents them from accessing insecure content. | - ``config.json setting``: ``".ImageProxySettings.Enable": true",`` | -| | - Environment variable: ``MM_IMAGEPROXYSETTINGS_ENABLE`` | -| - **true**: Enables an image proxy for loading | | -| external images. | | -| - **false**: **(Default)** Disables the image proxy. | | -+---------------------------------------------------------------+---------------------------------------------------------------------+ ++---------------------------------------------------------------+---------------------------------------------------------------------------+ +| An image proxy anonymizes Mattermost app connections and | - System Config path: **Environment > Image Proxy** | +| prevents them from accessing insecure content. | - ``config.json`` setting: ``ImageProxySettings`` > ``Enable`` > ``true`` | +| | - Environment variable: ``MM_IMAGEPROXYSETTINGS_ENABLE`` | +| - **true**: Enables an image proxy for loading | | +| external images. | | +| - **false**: **(Default)** Disables the image proxy. | | ++---------------------------------------------------------------+---------------------------------------------------------------------------+ See the :doc:`image proxy ` documentation to learn more. @@ -2441,13 +2460,13 @@ See the :doc:`image proxy ` documentation Image proxy type ~~~~~~~~~~~~~~~~ -+---------------------------------------------------------------+-------------------------------------------------------------------------------+ -| The type of image proxy used by Mattermost. | - System Config path: **Environment > Image Proxy** | -| | - ``config.json setting``: ``".ImageProxySettings.ImageProxyType": "local",`` | -| - **local**: **(Default)** The Mattermost server itself acts | - Environment variable: ``MM_IMAGEPROXYSETTINGS_IMAGEPROXYTYPE`` | -| as the image proxy. | | -| - **atmos/camo**: An external atmos/camo image proxy is used. | | -+---------------------------------------------------------------+-------------------------------------------------------------------------------+ ++---------------------------------------------------------------+--------------------------------------------------------------------------------------+ +| The type of image proxy used by Mattermost. | - System Config path: **Environment > Image Proxy** | +| | - ``config.json`` setting: ``ImageProxySettings`` > ``ImageProxyType`` > ``"local"`` | +| - **local**: **(Default)** The Mattermost server itself acts | - Environment variable: ``MM_IMAGEPROXYSETTINGS_IMAGEPROXYTYPE`` | +| as the image proxy. | | +| - **atmos/camo**: An external atmos/camo image proxy is used. | | ++---------------------------------------------------------------+--------------------------------------------------------------------------------------+ See the :doc:`image proxy ` documentation to learn more. @@ -2461,11 +2480,11 @@ See the :doc:`image proxy ` documentation Remote image proxy URL ~~~~~~~~~~~~~~~~~~~~~~ -+---------------------------------------------------------------+---------------------------------------------------------------------------+ -| The URL of the atmos/camo proxy. This setting isn't needed | - System Config path: **Environment > Image Proxy** | -| when using the **local** image proxy. | - ``config.json setting``: ``".ImageProxySettings.RemoteImageProxyURL",`` | -| | - Environment variable: ``MM_IMAGEPROXYSETTINGS_REMOTEIMAGEPROXYURL`` | -+---------------------------------------------------------------+---------------------------------------------------------------------------+ ++---------------------------------------------------------------+-----------------------------------------------------------------------------+ +| The URL of the atmos/camo proxy. This setting isn't needed | - System Config path: **Environment > Image Proxy** | +| when using the **local** image proxy. | - ``config.json`` setting: ``ImageProxySettings`` > ``RemoteImageProxyURL`` | +| | - Environment variable: ``MM_IMAGEPROXYSETTINGS_REMOTEIMAGEPROXYURL`` | ++---------------------------------------------------------------+-----------------------------------------------------------------------------+ .. config:setting:: remote-image-proxy-options :displayname: Remote image proxy options (Image Proxy) @@ -2477,11 +2496,11 @@ Remote image proxy URL Remote image proxy options ~~~~~~~~~~~~~~~~~~~~~~~~~~ -+---------------------------------------------------------------+-------------------------------------------------------------------------------+ -| The URL signing key passed to an atmos/camo image proxy. | - System Config path: **Environment > Image Proxy** | -| This setting isn't needed when using the **local** image | - ``config.json setting``: ``".ImageProxySettings.RemoteImageProxyOptions",`` | -| proxy type. | - Environment variable: ``MM_IMAGEPROXYSETTINGS_REMOTEIMAGEPROXYOPTIONS`` | -+---------------------------------------------------------------+-------------------------------------------------------------------------------+ ++---------------------------------------------------------------+---------------------------------------------------------------------------------+ +| The URL signing key passed to an atmos/camo image proxy. | - System Config path: **Environment > Image Proxy** | +| This setting isn't needed when using the **local** image | - ``config.json`` setting: ``ImageProxySettings`` > ``RemoteImageProxyOptions`` | +| proxy type. | - Environment variable: ``MM_IMAGEPROXYSETTINGS_REMOTEIMAGEPROXYOPTIONS`` | ++---------------------------------------------------------------+---------------------------------------------------------------------------------+ See the :doc:`image proxy ` documentation to learn more. @@ -2505,11 +2524,11 @@ Configure SMTP email server settings by going to **System Console > Environment SMTP server ~~~~~~~~~~~ -+-----------------------------------------------------------------+---------------------------------------------------------------+ -| The location of the SMTP email server used for email | - System Config path: **Environment > SMTP** | -| notifications. | - ``config.json setting``: ``".EmailSettings.SMTPServer",`` | -| | - Environment variable: ``MM_EMAILSETTINGS_SMTPSERVER`` | -+-----------------------------------------------------------------+---------------------------------------------------------------+ ++-----------------------------------------------------------------+-----------------------------------------------------------------+ +| The location of the SMTP email server used for email | - System Config path: **Environment > SMTP** | +| notifications. | - ``config.json`` setting: ``EmailSettings`` > ``SMTPServer`` | +| | - Environment variable: ``MM_EMAILSETTINGS_SMTPSERVER`` | ++-----------------------------------------------------------------+-----------------------------------------------------------------+ .. config:setting:: smtp-server-port :displayname: SMTP server port (SMTP) @@ -2523,7 +2542,7 @@ SMTP server port +-----------------------------------------------------------------+---------------------------------------------------------------+ | The port of SMTP email server. | - System Config path: **Environment > SMTP** | -| | - ``config.json setting``: ``".EmailSettings.SMTPPort",`` | +| | - ``config.json`` setting: ``EmailSettings`` > ``SMTPPort`` | | Numerical input. | - Environment variable: ``MM_EMAILSETTINGS_SMTPPORT`` | +-----------------------------------------------------------------+---------------------------------------------------------------+ @@ -2539,14 +2558,14 @@ SMTP server port Enable SMTP authentication ~~~~~~~~~~~~~~~~~~~~~~~~~~ -+-----------------------------------------------------------------+---------------------------------------------------------------------------+ -| Enable or disable SMTP authentication. | - System Config path: **Environment > SMTP** | -| | - ``config.json setting``: ``".EmailSettings.EnableSMTPAuth": false",`` | -| - **true**: SMTP username and password are used for | - Environment variable: ``MM_EMAILSETTINGS_ENABLESMTPAUTH`` | -| authenticating to the SMTP server. | | -| - **false**: **(Default)** Mattermost doesn’t attempt to | | -| authenticate to the SMTP server. | | -+-----------------------------------------------------------------+---------------------------------------------------------------------------+ ++-----------------------------------------------------------------+---------------------------------------------------------------------------------+ +| Enable or disable SMTP authentication. | - System Config path: **Environment > SMTP** | +| | - ``config.json`` setting: ``EmailSettings`` > ``EnableSMTPAuth`` > ``false`` | +| - **true**: SMTP username and password are used for | - Environment variable: ``MM_EMAILSETTINGS_ENABLESMTPAUTH`` | +| authenticating to the SMTP server. | | +| - **false**: **(Default)** Mattermost doesn’t attempt to | | +| authenticate to the SMTP server. | | ++-----------------------------------------------------------------+---------------------------------------------------------------------------------+ .. config:setting:: smtp-server-username :displayname: SMTP server username (SMTP) @@ -2558,11 +2577,11 @@ Enable SMTP authentication SMTP server username ~~~~~~~~~~~~~~~~~~~~ -+-----------------------------------------------------------------+---------------------------------------------------------------+ -| The username for authenticating to the SMTP server. | - System Config path: **Environment > SMTP** | -| | - ``config.json setting``: ``".EmailSettings.SMTPUsername",`` | -| String input. | - Environment variable: ``MM_EMAILSETTINGS_SMTPUSERNAME`` | -+-----------------------------------------------------------------+---------------------------------------------------------------+ ++-----------------------------------------------------------------+-----------------------------------------------------------------+ +| The username for authenticating to the SMTP server. | - System Config path: **Environment > SMTP** | +| | - ``config.json`` setting: ``EmailSettings`` > ``SMTPUsername`` | +| String input. | - Environment variable: ``MM_EMAILSETTINGS_SMTPUSERNAME`` | ++-----------------------------------------------------------------+-----------------------------------------------------------------+ .. config:setting:: smtp-server-password :displayname: SMTP server password (SMTP) @@ -2574,11 +2593,11 @@ SMTP server username SMTP server password ~~~~~~~~~~~~~~~~~~~~ -+-----------------------------------------------------------------+---------------------------------------------------------------+ -| The password associated with the SMTP username. | - System Config path: **Environment > SMTP** | -| | - ``config.json setting``: ``".EmailSettings.SMTPPassword",`` | -| String input. | - Environment variable: ``MM_EMAILSETTINGS_SMTPPASSWORD`` | -+-----------------------------------------------------------------+---------------------------------------------------------------+ ++-----------------------------------------------------------------+-----------------------------------------------------------------+ +| The password associated with the SMTP username. | - System Config path: **Environment > SMTP** | +| | - ``config.json`` setting: ``EmailSettings`` > ``SMTPPassword`` | +| String input. | - Environment variable: ``MM_EMAILSETTINGS_SMTPPASSWORD`` | ++-----------------------------------------------------------------+-----------------------------------------------------------------+ .. config:setting:: smtp-connection-security :displayname: SMTP connection security (SMTP) @@ -2595,7 +2614,7 @@ SMTP connection security +-----------------------------------------------------------------+-----------------------------------------------------------------------+ | Specify connection security for emails sent using SMTP. | - System Config path: **Environment > SMTP** | -| | - ``config.json setting``: ``".EmailSettings.ConnectionSecurity",`` | +| | - ``config.json`` setting: ``EmailSettings`` > ``ConnectionSecurity`` | | - **Not specified**: **(Default)** Send email over an | - Environment variable: ``MM_EMAILSETTINGS_CONNECTIONSECURITY`` | | unsecure connection. | | | - **TLS**: Communication between Mattermost and your email | | @@ -2616,14 +2635,14 @@ SMTP connection security Skip server certificate verification ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -+-----------------------------------------------------------------------+----------------------------------------------------------------------------------------------+ -| Configure Mattermost to skip the verification of the email server | - System Config path: **Environment > SMTP** | -| certificate. | - ``config.json setting``: ``".EmailSettings.SkipServerCertificateVerification": false",`` | -| | - Environment variable: ``MM_EMAILSETTINGS_SKIPSERVERCERTIFICATEVERIFICATION`` | -| - **true**: Mattermost won't verify the email server certificate. | | -| - **false**: **(Default)** Mattermost verifies the email | | -| server certificate. | | -+-----------------------------------------------------------------------+----------------------------------------------------------------------------------------------+ ++-----------------------------------------------------------------------+----------------------------------------------------------------------------------------------------+ +| Configure Mattermost to skip the verification of the email server | - System Config path: **Environment > SMTP** | +| certificate. | - ``config.json`` setting: ``EmailSettings`` > ``SkipServerCertificateVerification`` > ``false`` | +| | - Environment variable: ``MM_EMAILSETTINGS_SKIPSERVERCERTIFICATEVERIFICATION`` | +| - **true**: Mattermost won't verify the email server certificate. | | +| - **false**: **(Default)** Mattermost verifies the email | | +| server certificate. | | ++-----------------------------------------------------------------------+----------------------------------------------------------------------------------------------------+ .. config:setting:: enable-security-alerts :displayname: Enable security alerts (SMTP) @@ -2637,14 +2656,14 @@ Skip server certificate verification Enable security alerts ~~~~~~~~~~~~~~~~~~~~~~ -+-----------------------------------------------------------------+------------------------------------------------------------------------------------+ -| Enable or disable security alerts. | - System Config path: **Environment > SMTP** | -| | - ``config.json setting``: ``".ServiceSettings.EnableSecurityFixAlert": true",`` | -| - **true**: **(Default)** System admins are notified by email | - Environment variable: ``MM_SERVICESETTINGS_ENABLESECURITYFIXALERT`` | -| if a relevant security fix alert is announced. Requires email | | -| to be enabled. | | -| - **false**: Security alerts are disabled. | | -+-----------------------------------------------------------------+------------------------------------------------------------------------------------+ ++-----------------------------------------------------------------+------------------------------------------------------------------------------------------+ +| Enable or disable security alerts. | - System Config path: **Environment > SMTP** | +| | - ``config.json`` setting: ``ServiceSettings`` > ``EnableSecurityFixAlert`` > ``true`` | +| - **true**: **(Default)** System admins are notified by email | - Environment variable: ``MM_SERVICESETTINGS_ENABLESECURITYFIXALERT`` | +| if a relevant security fix alert is announced. Requires email | | +| to be enabled. | | +| - **false**: Security alerts are disabled. | | ++-----------------------------------------------------------------+------------------------------------------------------------------------------------------+ See the :ref:`Telemetry ` documentation to learn more. @@ -2660,7 +2679,7 @@ SMTP server timeout +-----------------------------------------------------------------+----------------------------------------------------------------------+ | The maximum amount of time, in seconds, allowed for | - System Config path: **Environment > SMTP** | -| establishing a TCP connection between Mattermost and the SMTP | - ``config.json setting``: ``".EmailSettings.SMTPServerTimeout",`` | +| establishing a TCP connection between Mattermost and the SMTP | - ``config.json`` setting: ``EmailSettings`` > ``SMTPServerTimeout`` | | server. | - Environment variable: ``MM_EMAILSETTINGS_SMTPSERVERTIMEOUT`` | | | | | Numerical value in seconds. | | @@ -2701,17 +2720,17 @@ In a Mattermost high availability cluster-based deployment, the System Console i Enable high availability mode ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -+-----------------------------------------------------------------+------------------------------------------------------------+ -| You can enable high availability mode. | - System Config path: **Environment > High Availability** | -| | - ``config.json`` setting: ``".ClusterSettings.Enable",`` | -| - **true**: The Mattermost server will attempt inter-node | - Environment variable: ``MM_CLUSTERSETTINGS_ENABLE`` | -| communication with the other servers in the cluster that | | -| have the same cluster name. This sets the System Console to | | -| read-only mode to keep the servers' ``config.json`` files | | -| in sync. | | -| - **false**: **(Default)** Mattermost high availability mode | | -| is disabled. | | -+-----------------------------------------------------------------+------------------------------------------------------------+ ++-----------------------------------------------------------------+---------------------------------------------------------------------------+ +| You can enable high availability mode. | - System Config path: **Environment > High Availability** | +| | - ``config.json`` setting: ``ClusterSettings`` > ``Enable`` > ``false`` | +| - **true**: The Mattermost server will attempt inter-node | - Environment variable: ``MM_CLUSTERSETTINGS_ENABLE`` | +| communication with the other servers in the cluster that | | +| have the same cluster name. This sets the System Console to | | +| read-only mode to keep the servers' ``config.json`` files | | +| in sync. | | +| - **false**: **(Default)** Mattermost high availability mode | | +| is disabled. | | ++-----------------------------------------------------------------+---------------------------------------------------------------------------+ .. config:setting:: cluster-name :displayname: Cluster name (High Availability) @@ -2723,13 +2742,13 @@ Enable high availability mode Cluster name ~~~~~~~~~~~~ -+------------------------------------------------------------------------------+-----------------------------------------------------------------+ -| The cluster to join by name in a high availability cluster-based deployment. | - System Config path: **Environment > High Availability** | -| | - ``config.json`` setting: ``".ClusterSettings.ClusterName",`` | -| Only nodes with the same cluster name will join together. | - Environment variable: ``MM_CLUSTERSETTINGS_CLUSTERNAME`` | -| This is to support blue-green deployments or staging pointing | | -| to the same database. | | -+------------------------------------------------------------------------------+-----------------------------------------------------------------+ ++------------------------------------------------------------------------------+--------------------------------------------------------------------------+ +| The cluster to join by name in a high availability cluster-based deployment. | - System Config path: **Environment > High Availability** | +| | - ``config.json`` setting: ``ClusterSettings`` > ``ClusterName`` | +| Only nodes with the same cluster name will join together. | - Environment variable: ``MM_CLUSTERSETTINGS_CLUSTERNAME`` | +| This is to support blue-green deployments or staging pointing | | +| to the same database. | | ++------------------------------------------------------------------------------+--------------------------------------------------------------------------+ .. config:setting:: override-hostname :displayname: Override hostname (High Availability) @@ -2741,15 +2760,15 @@ Cluster name Override hostname ~~~~~~~~~~~~~~~~~ -+-----------------------------------------------------------------+------------------------------------------------------------------------+ -| You can override the hostname of this server. | - System Config path: **Environment > High Availability** | -| | - ``config.json`` setting: ``".ClusterSettings.OverrideHostname",`` | -| - This property can be set to a specific IP address if needed; | - Environment variable: ``MM_CLUSTERSETTINGS_OVERRIDEHOSTNAME`` | -| however, we don’t recommend overriding the hostname unless | | -| it's necessary. | | -| - If left blank, Mattermost attempts to get the hostname from | | -| the operating system or uses the IP address. | | -+-----------------------------------------------------------------+------------------------------------------------------------------------+ ++-----------------------------------------------------------------+---------------------------------------------------------------------------------+ +| You can override the hostname of this server. | - System Config path: **Environment > High Availability** | +| | - ``config.json`` setting: ``ClusterSettings`` > ``OverrideHostname`` | +| - This property can be set to a specific IP address if needed; | - Environment variable: ``MM_CLUSTERSETTINGS_OVERRIDEHOSTNAME`` | +| however, we don’t recommend overriding the hostname unless | | +| it's necessary. | | +| - If left blank, Mattermost attempts to get the hostname from | | +| the operating system or uses the IP address. | | ++-----------------------------------------------------------------+---------------------------------------------------------------------------------+ See the :doc:`high availability cluster-based deployment ` documentation for details. @@ -2765,15 +2784,15 @@ See the :doc:`high availability cluster-based deployment High Availability** | -| communicate using the hostname instead of the IP address. | - ``config.json`` setting: ``".ClusterSettings.UseIPAddress: true",`` | -| | - Environment variable: ``MM_CLUSTERSETTINGS_USEIPADDRESS`` | -| - **true**: **(Default)** The cluster attempts to communicate | | -| using the IP address specified. | | -| - **false**: The cluster attempts to communicate using the | | -| hostname. | | -+------------------------------------------------------------------------------+------------------------------------------------------------------------+ ++------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ +| You can configure your high availability cluster-based deployment to | - System Config path: **Environment > High Availability** | +| communicate using the hostname instead of the IP address. | - ``config.json`` setting: ``ClusterSettings`` > ``UseIPAddress`` > ``true`` | +| | - Environment variable: ``MM_CLUSTERSETTINGS_USEIPADDRESS`` | +| - **true**: **(Default)** The cluster attempts to communicate | | +| using the IP address specified. | | +| - **false**: The cluster attempts to communicate using the | | +| hostname. | | ++------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ .. config:setting:: enable-gossip-encryption :displayname: Enable gossip encryption (High Availability) @@ -2787,15 +2806,15 @@ Use IP address Enable gossip encryption ~~~~~~~~~~~~~~~~~~~~~~~~ -+-----------------------------------------------------------------+----------------------------------------------------------------------------------+ -| Gossip encryption uses AES-256 by default, and this value isn't | - System Config path: **Environment > High Availability** | -| configurable by design. | - ``config.json`` setting: ``".ClusterSettings.EnableGossipEncryption: true",`` | -| | - Environment variable: ``MM_CLUSTERSETTINGS_ENABLEGOSSIPENCRYPTION`` | -| - **true**: **(Default)** The server attempts to communicate | | -| via the gossip protocol over the gossip port specified. | | -| - **false**: The server attempts to communicate over the | | -| streaming port. | | -+-----------------------------------------------------------------+----------------------------------------------------------------------------------+ ++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------+ +| Gossip encryption uses AES-256 by default, and this value isn't | - System Config path: **Environment > High Availability** | +| configurable by design. | - ``config.json`` setting: ``ClusterSettings`` > ``EnableGossipEncryption`` > ``true`` | +| | - Environment variable: ``MM_CLUSTERSETTINGS_ENABLEGOSSIPENCRYPTION`` | +| - **true**: **(Default)** The server attempts to communicate | | +| via the gossip protocol over the gossip port specified. | | +| - **false**: The server attempts to communicate over the | | +| streaming port. | | ++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------+ .. note:: @@ -2815,18 +2834,18 @@ Enable gossip encryption Enable gossip compression ~~~~~~~~~~~~~~~~~~~~~~~~~ -+-----------------------------------------------------------------+----------------------------------------------------------------------------------+ -| We recommend that you disable this configuration | - System Config path: **Environment > High Availability** | -| setting for better performance. | - ``config.json`` setting: ``".ClusterSettings.EnableGossipCompression: true”,`` | -| | - Environment variable: ``MM_CLUSTERSETTINGS_ENABLEGOSSIPCOMPRESSION`` | -| - **true**: **(Default for self-hosted deployments)** | | -| All communication through the cluster uses gossip | | -| compression. This setting is enabled by default to maintain | | -| compatibility with older servers. | | -| - **false**: **(Default for Cloud deployments)** | | -| All communication using the gossip protocol remains | | -| uncompressed. | | -+-----------------------------------------------------------------+----------------------------------------------------------------------------------+ ++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------+ +| We recommend that you disable this configuration | - System Config path: **Environment > High Availability** | +| setting for better performance. | - ``config.json`` setting: ``ClusterSettings`` > ``EnableGossipCompression`` > ``true`` | +| | - Environment variable: ``MM_CLUSTERSETTINGS_ENABLEGOSSIPCOMPRESSION`` | +| - **true**: **(Default for self-hosted deployments)** | | +| All communication through the cluster uses gossip | | +| compression. This setting is enabled by default to maintain | | +| compatibility with older servers. | | +| - **false**: **(Default for Cloud deployments)** | | +| All communication using the gossip protocol remains | | +| uncompressed. | | ++-----------------------------------------------------------------+-----------------------------------------------------------------------------------------+ .. config:setting:: gossip-port :displayname: Gossip port (High Availability) @@ -2838,12 +2857,12 @@ Enable gossip compression Gossip port ~~~~~~~~~~~ -+-----------------------------------------------------------------+---------------------------------------------------------------------+ -| The port used for the gossip protocol. Both UDP and TCP | - System Config path: **Environment > High Availability** | -| should be allowed on this port. | - ``config.json`` setting: ``".ClusterSettings.GossipPort: 8074”,`` | -| | - Environment variable: ``MM_CLUSTERSETTINGS_GOSSIPPORT`` | -| Numerical input. Default is **8074**. | | -+-----------------------------------------------------------------+---------------------------------------------------------------------+ ++-----------------------------------------------------------------+----------------------------------------------------------------------------+ +| The port used for the gossip protocol. Both UDP and TCP | - System Config path: **Environment > High Availability** | +| should be allowed on this port. | - ``config.json`` setting: ``ClusterSettings`` > ``GossipPort`` > ``8074`` | +| | - Environment variable: ``MM_CLUSTERSETTINGS_GOSSIPPORT`` | +| Numerical input. Default is **8074**. | | ++-----------------------------------------------------------------+----------------------------------------------------------------------------+ .. config:setting:: read-only-config :displayname: Read only config (High Availability) @@ -2855,12 +2874,12 @@ Gossip port Read only config ~~~~~~~~~~~~~~~~ -+-----------------------------------------------------------------+------------------------------------------------------------------------+ -| - **true**: **(Default)** Changes made to settings in the | - System Config path: N/A | -| System Console are ignored. | - ``config.json`` setting: ``".ClusterSettings.ReadOnlyConfig: true,`` | -| - **false**: Changes made to settings in the System Console | - Environment variable: ``MM_CLUSTERSETTINGS_READONLYCONFIG`` | -| are written to ``config.json``. | | -+-----------------------------------------------------------------+------------------------------------------------------------------------+ ++-----------------------------------------------------------------+--------------------------------------------------------------------------------+ +| - **true**: **(Default)** Changes made to settings in the | - System Config path: N/A | +| System Console are ignored. | - ``config.json`` setting: ``ClusterSettings`` > ``ReadOnlyConfig`` > ``true`` | +| - **false**: Changes made to settings in the System Console | - Environment variable: ``MM_CLUSTERSETTINGS_READONLYCONFIG`` | +| are written to ``config.json``. | | ++-----------------------------------------------------------------+--------------------------------------------------------------------------------+ .. config:setting:: network-interface :displayname: Network interface (High Availability) @@ -2872,12 +2891,12 @@ Read only config Network interface ~~~~~~~~~~~~~~~~~ -+-----------------------------------------------------------------+------------------------------------------------------------------------+ -| An IP address used to identify the device that does automatic | - System Config path: N/A | -| IP detection in high availability cluster-based deployments. | - ``config.json`` setting: ``".ClusterSettings.NetworkInterface: "",`` | -| | - Environment variable: ``MM_CLUSTERSETTINGS_NETWORKINTERFACE`` | -| String input. | | -+-----------------------------------------------------------------+------------------------------------------------------------------------+ ++-----------------------------------------------------------------+--------------------------------------------------------------------------------+ +| An IP address used to identify the device that does automatic | - System Config path: N/A | +| IP detection in high availability cluster-based deployments. | - ``config.json`` setting: ``ClusterSettings`` > ``NetworkInterface`` > ``""`` | +| | - Environment variable: ``MM_CLUSTERSETTINGS_NETWORKINTERFACE`` | +| String input. | | ++-----------------------------------------------------------------+--------------------------------------------------------------------------------+ .. config:setting:: bind-address :displayname: Bind address (High Availability) @@ -2889,17 +2908,17 @@ Network interface Bind address ~~~~~~~~~~~~ -+-----------------------------------------------------------------+--------------------------------------------------------------------+ -| An IP address used to bind cluster traffic to a specific | - System Config path: N/A | -| network device. | - ``config.json`` setting: ``".ClusterSettings.BindAddress: "",`` | -| | - Environment variable: ``MM_CLUSTERSETTINGS_BINDADDRESS`` | -| This setting is used primarily for servers with multiple | | -| network devices or different Bind Address and Advertise Address | | -| like in deployments that involve NAT (Network Address | | -| Translation). | | -| | | -| String input. | | -+-----------------------------------------------------------------+--------------------------------------------------------------------+ ++-----------------------------------------------------------------+----------------------------------------------------------------------------+ +| An IP address used to bind cluster traffic to a specific | - System Config path: N/A | +| network device. | - ``config.json`` setting: ``ClusterSettings`` > ``BindAddress`` > ``""`` | +| | - Environment variable: ``MM_CLUSTERSETTINGS_BINDADDRESS`` | +| This setting is used primarily for servers with multiple | | +| network devices or different Bind Address and Advertise Address | | +| like in deployments that involve NAT (Network Address | | +| Translation). | | +| | | +| String input. | | ++-----------------------------------------------------------------+----------------------------------------------------------------------------+ .. config:setting:: advertise-address :displayname: Advertise address (High Availability) @@ -2911,13 +2930,13 @@ Bind address Advertise address ~~~~~~~~~~~~~~~~~ -+-----------------------------------------------------------------+------------------------------------------------------------------------+ -| The IP address used to access the server from other nodes. | - System Config path: N/A | -| This settings is used primary when cluster nodes are not in | - ``config.json`` setting: ``".ClusterSettings.AdvertiseAddress: "",`` | -| the same network and involve NAT (Network Address Translation). | - Environment variable: ``MM_CLUSTERSETTINGS_ADVERTISEADDRESS`` | -| | | -| String input. | | -+-----------------------------------------------------------------+------------------------------------------------------------------------+ ++-----------------------------------------------------------------+--------------------------------------------------------------------------------+ +| The IP address used to access the server from other nodes. | - System Config path: N/A | +| This settings is used primary when cluster nodes are not in | - ``config.json`` setting: ``ClusterSettings`` > ``AdvertiseAddress`` > ``""`` | +| the same network and involve NAT (Network Address Translation). | - Environment variable: ``MM_CLUSTERSETTINGS_ADVERTISEADDRESS`` | +| | | +| String input. | | ++-----------------------------------------------------------------+--------------------------------------------------------------------------------+ ---- @@ -2963,18 +2982,18 @@ Configure general logging by going to **System Console > Environment > Logging** Output logs to console ^^^^^^^^^^^^^^^^^^^^^^^ -+-----------------------------------------------+---------------------------------------------------------------------+ -| Configure Mattermost to output general logs | - System Config path: **Environment > Logging** | -| to the console. | - ``config.json setting``: ``".LogSettings.EnableConsole": true",`` | -| | - Environment variable: ``MM_LOGSETTINGS_ENABLECONSOLE`` | -| - **true**: **(Default)** Output log messages | | -| are written to the console based on the | | -| `console log level <#console-log-level>`__ | | -| configuration. The server writes messages | | -| to the standard output stream (stdout). | | -| - **false**: Output log messages aren’t | | -| written to the console. | | -+-----------------------------------------------+---------------------------------------------------------------------+ ++-----------------------------------------------+---------------------------------------------------------------------------+ +| Configure Mattermost to output general logs | - System Config path: **Environment > Logging** | +| to the console. | - ``config.json`` setting: ``LogSettings`` > ``EnableConsole`` > ``true`` | +| | - Environment variable: ``MM_LOGSETTINGS_ENABLECONSOLE`` | +| - **true**: **(Default)** Output log messages | | +| are written to the console based on the | | +| `console log level <#console-log-level>`__ | | +| configuration. The server writes messages | | +| to the standard output stream (stdout). | | +| - **false**: Output log messages aren’t | | +| written to the console. | | ++-----------------------------------------------+---------------------------------------------------------------------------+ .. config:setting:: console-log-level :displayname: Console general log level (General Logging) @@ -2990,18 +3009,18 @@ Output logs to console Console log level ^^^^^^^^^^^^^^^^^^ -+-----------------------------------------------+---------------------------------------------------------------------+ -| The level of detail in general log events | - System Config path: **Environment > Logging** | -| written when Mattermost outputs log messages | - ``config.json setting``: ``".LogSettings.ConsoleLevel": DEBUG",`` | -| to the console. | - Environment variable: ``MM_LOGSETTINGS_CONSOLELEVEL`` | -| | | -| - **DEBUG**: **(Default)** Outputs verbose | | -| detail for developers debugging issues. | | -| - **ERROR**: Outputs only error messages. | | -| - **INFO**: Outputs error messages and | | -| information around startup and | | -| initialization. | | -+-----------------------------------------------+---------------------------------------------------------------------+ ++-----------------------------------------------+-----------------------------------------------------------------------------+ +| The level of detail in general log events | - System Config path: **Environment > Logging** | +| written when Mattermost outputs log messages | - ``config.json`` setting: ``LogSettings`` > ``ConsoleLevel`` > ``"DEBUG"`` | +| to the console. | - Environment variable: ``MM_LOGSETTINGS_CONSOLELEVEL`` | +| | | +| - **DEBUG**: **(Default)** Outputs verbose | | +| detail for developers debugging issues. | | +| - **ERROR**: Outputs only error messages. | | +| - **INFO**: Outputs error messages and | | +| information around startup and | | +| initialization. | | ++-----------------------------------------------+-----------------------------------------------------------------------------+ .. config:setting:: output-console-logs-as-json :displayname: Output general console logs as JSON (General Logging) @@ -3016,15 +3035,15 @@ Console log level Output console logs as JSON ^^^^^^^^^^^^^^^^^^^^^^^^^^^ -+-----------------------------------------------+---------------------------------------------------------------------+ -| Configure Mattermost to output general | - System Config path: **Environment > Logging** | -| console logs as JSON. | - ``config.json setting``: ``".LogSettings.ConsoleJson": true",`` | -| | - Environment variable: ``MM_LOGSETTINGS_CONSOLEJSON`` | -| - **true**: **(Default)** Logged events are | | -| written in a machine-readable JSON format. | | -| - **false**: Logged events are written in | | -| plain text. | | -+-----------------------------------------------+---------------------------------------------------------------------+ ++-----------------------------------------------+---------------------------------------------------------------------------+ +| Configure Mattermost to output general | - System Config path: **Environment > Logging** | +| console logs as JSON. | - ``config.json`` setting: ``LogSettings`` > ``ConsoleJson`` > ``true`` | +| | - Environment variable: ``MM_LOGSETTINGS_CONSOLEJSON`` | +| - **true**: **(Default)** Logged events are | | +| written in a machine-readable JSON format. | | +| - **false**: Logged events are written in | | +| plain text. | | ++-----------------------------------------------+---------------------------------------------------------------------------+ Typically set to **true** in a production environment. @@ -3041,16 +3060,16 @@ Typically set to **true** in a production environment. Colorize plain text console logs ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -+-----------------------------------------------+----------------------------------------------------------------------+ -| Enables system admins to display plain text | - System Config path: N/A | -| general log level details in color. | - ``config.json setting``: ``".LogSettings.EnableColor": false",`` | -| | - Environment variable: ``MM_LOGSETTINGS_ENABLECOLOR`` | -| - **true**: When logged events are output to | | -| the console as plain text, colorize log | | -| levels details. | | -| - **false**: **(Default)** Plain text log | | -| details aren't colorized in the console. | | -+-----------------------------------------------+----------------------------------------------------------------------+ ++-----------------------------------------------+----------------------------------------------------------------------------+ +| Enables system admins to display plain text | - System Config path: N/A | +| general log level details in color. | - ``config.json`` setting: ``LogSettings`` > ``EnableColor`` > ``false`` | +| | - Environment variable: ``MM_LOGSETTINGS_ENABLECOLOR`` | +| - **true**: When logged events are output to | | +| the console as plain text, colorize log | | +| levels details. | | +| - **false**: **(Default)** Plain text log | | +| details aren't colorized in the console. | | ++-----------------------------------------------+----------------------------------------------------------------------------+ .. config:setting:: output-logs-to-file :displayname: Output general logs to file (General Logging) @@ -3065,19 +3084,19 @@ Colorize plain text console logs Output logs to file ^^^^^^^^^^^^^^^^^^^^ -+-----------------------------------------------+---------------------------------------------------------------------+ -| Configure Mattermost to output general | - System Config path: **Environment > Logging** | -| console logs to a file. | - ``config.json setting``: ``".LogSettings.EnableFile": true",`` | -| | - Environment variable: ``MM_LOGSETTINGS_ENABLEFILE`` | -| - **true**: **(Default)** Logged events are | | -| written based on the | | -| `file log level <#file-log-level>`__ | | -| configuration to a ``mattermost.log`` file | | -| located in the directory configured via | | -| ``file location``. | | -| - **false**: Logged events aren’t written to | | -| a file. | | -+-----------------------------------------------+---------------------------------------------------------------------+ ++-----------------------------------------------+---------------------------------------------------------------------------+ +| Configure Mattermost to output general | - System Config path: **Environment > Logging** | +| console logs to a file. | - ``config.json`` setting: ``LogSettings`` > ``EnableFile`` > ``true`` | +| | - Environment variable: ``MM_LOGSETTINGS_ENABLEFILE`` | +| - **true**: **(Default)** Logged events are | | +| written based on the | | +| `file log level <#file-log-level>`__ | | +| configuration to a ``mattermost.log`` file | | +| located in the directory configured via | | +| ``file location``. | | +| - **false**: Logged events aren’t written to | | +| a file. | | ++-----------------------------------------------+---------------------------------------------------------------------------+ .. note:: @@ -3093,12 +3112,12 @@ Output logs to file File log directory ^^^^^^^^^^^^^^^^^^ -+-----------------------------------------------+---------------------------------------------------------------------+ -| The location of the general log files. | - System Config path: **Environment > Logging** | -| | - ``config.json setting``: ``".LogSettings.FileLocation": "",`` | -| String input. If left blank, log files are | - Environment variable: ``MM_LOGSETTINGS_FILELOCATION`` | -| stored in the ``./logs`` directory. | | -+-----------------------------------------------+---------------------------------------------------------------------+ ++-----------------------------------------------+----------------------------------------------------------------------------+ +| The location of the general log files. | - System Config path: **Environment > Logging** | +| | - ``config.json`` setting: ``LogSettings`` > ``FileLocation`` > ``""`` | +| String input. If left blank, log files are | - Environment variable: ``MM_LOGSETTINGS_FILELOCATION`` | +| stored in the ``./logs`` directory. | | ++-----------------------------------------------+----------------------------------------------------------------------------+ .. note:: @@ -3118,17 +3137,17 @@ File log directory File log level ^^^^^^^^^^^^^^ -+-------------------------------------------------+---------------------------------------------------------------------+ -| The level of detail in general log events when | - System Config path: **Environment > Logging** | -| when Mattermost outputs log messages to a file. | - ``config.json setting``: ``".LogSettings.FileLevel": INFO",`` | -| | - Environment variable: ``MM_LOGSETTINGS_FILELEVEL`` | -| - **DEBUG**: Outputs verbose detail for | | -| developers debugging issues. | | -| - **ERROR**: Outputs only error messages. | | -| - **INFO**: **(Default)** Outputs error | | -| messages and information around startup | | -| and initialization. | | -+-------------------------------------------------+---------------------------------------------------------------------+ ++-------------------------------------------------+-------------------------------------------------------------------------+ +| The level of detail in general log events when | - System Config path: **Environment > Logging** | +| when Mattermost outputs log messages to a file. | - ``config.json`` setting: ``LogSettings`` > ``FileLevel`` > ``"INFO"`` | +| | - Environment variable: ``MM_LOGSETTINGS_FILELEVEL`` | +| - **DEBUG**: Outputs verbose detail for | | +| developers debugging issues. | | +| - **ERROR**: Outputs only error messages. | | +| - **INFO**: **(Default)** Outputs error | | +| messages and information around startup | | +| and initialization. | | ++-------------------------------------------------+-------------------------------------------------------------------------+ .. config:setting:: output-file-logs-as-json :displayname: Output general file logs as JSON (General Logging) @@ -3143,15 +3162,15 @@ File log level Output file logs as JSON ^^^^^^^^^^^^^^^^^^^^^^^^ -+-----------------------------------------------+---------------------------------------------------------------------+ -| Configure Mattermost to output general file | - System Config path: **Environment > Logging** | -| logs as JSON. | - ``config.json setting``: ``".LogSettings.FileJson": true",`` | -| | - Environment variable: ``MM_LOGSETTINGS_FILEJSON`` | -| - **true**: **(Default)** Logged events are | | -| written in a machine-readable JSON format. | | -| - **false**: Logged events are written in | | -| plain text. | | -+-----------------------------------------------+---------------------------------------------------------------------+ ++-----------------------------------------------+------------------------------------------------------------------------+ +| Configure Mattermost to output general file | - System Config path: **Environment > Logging** | +| logs as JSON. | - ``config.json`` setting: ``LogSettings`` > ``FileJson`` > ``true`` | +| | - Environment variable: ``MM_LOGSETTINGS_FILEJSON`` | +| - **true**: **(Default)** Logged events are | | +| written in a machine-readable JSON format. | | +| - **false**: Logged events are written in | | +| plain text. | | ++-----------------------------------------------+------------------------------------------------------------------------+ Typically set to **true** in a production environment. @@ -3168,17 +3187,17 @@ Typically set to **true** in a production environment. Enable webhook debugging ^^^^^^^^^^^^^^^^^^^^^^^^ -+-----------------------------------------------+------------------------------------------------------------------------------+ -| Configure Mattermost to capture the contents | - System Config path: **Environment > Logging** | -| of general incoming webhooks to console | - ``config.json setting``: ``".LogSettings.EnableWebhookDebugging": true",`` | -| and/or file logs for debugging. | - Environment variable: ``MM_LOGSETTINGS_ENABLEWEBHOOKDEBUGGING`` | -| | | -| - **true**: **(Default)** The contents of | | -| incoming webhooks are printed to log files | | -| for debugging. | | -| - **false**: The contents of incoming | | -| webhooks aren’t printed to log files. | | -+-----------------------------------------------+------------------------------------------------------------------------------+ ++-----------------------------------------------+------------------------------------------------------------------------------------+ +| Configure Mattermost to capture the contents | - System Config path: **Environment > Logging** | +| of general incoming webhooks to console | - ``config.json`` setting: ``LogSettings`` > ``EnableWebhookDebugging`` > ``true`` | +| and/or file logs for debugging. | - Environment variable: ``MM_LOGSETTINGS_ENABLEWEBHOOKDEBUGGING`` | +| | | +| - **true**: **(Default)** The contents of | | +| incoming webhooks are printed to log files | | +| for debugging. | | +| - **false**: The contents of incoming | | +| webhooks aren’t printed to log files. | | ++-----------------------------------------------+------------------------------------------------------------------------------------+ .. note:: @@ -3194,16 +3213,16 @@ Enable webhook debugging Output logs to multiple targets ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -+-----------------------------------------------+---------------------------------------------------------------------------+ -| Configure Mattermost to allow any combination | - System Config path: **Environment > Logging** | -| of console, local file, syslog, and TCP | - ``config.json setting``: ``".LogSettings.AdvancedLoggingJSON":: "",`` | -| socket targets, and send general log records | - Environment variable: ``MM_LOGSETTINGS_ADVANCEDLOGGINGJSON`` | -| to multiple targets. | | -| | | -| String input can contain a filespec to | | -| another configuration file, a database DSN, | | -| or JSON. | | -+-----------------------------------------------+---------------------------------------------------------------------------+ ++-----------------------------------------------+------------------------------------------------------------------------------------+ +| Configure Mattermost to allow any combination | - System Config path: **Environment > Logging** | +| of console, local file, syslog, and TCP | - ``config.json`` setting: ``LogSettings`` > ``AdvancedLoggingJSON`` > ``": ""`` | +| socket targets, and send general log records | - Environment variable: ``MM_LOGSETTINGS_ADVANCEDLOGGINGJSON`` | +| to multiple targets. | | +| | | +| String input can contain a filespec to | | +| another configuration file, a database DSN, | | +| or JSON. | | ++-----------------------------------------------+------------------------------------------------------------------------------------+ .. note:: @@ -3221,12 +3240,12 @@ Output logs to multiple targets Maximum field size ^^^^^^^^^^^^^^^^^^ -+-----------------------------------------------+----------------------------------------------------------------------+ -| Enables system admins to limit the size of | - System Config path: N/A | -| general log fields during logging. | - ``config.json setting``: ``".LogSettings.MaxFieldSize": 2048",`` | -| | - Environment variable: ``MM_LOGSETTINGS_MAXFIELDSIZE`` | -| Numerical value. Default is **2048**. | | -+-----------------------------------------------+----------------------------------------------------------------------+ ++-----------------------------------------------+----------------------------------------------------------------------------+ +| Enables system admins to limit the size of | - System Config path: N/A | +| general log fields during logging. | - ``config.json`` setting: ``LogSettings`` > ``MaxFieldSize`` > ``2048`` | +| | - Environment variable: ``MM_LOGSETTINGS_MAXFIELDSIZE`` | +| Numerical value. Default is **2048**. | | ++-----------------------------------------------+----------------------------------------------------------------------------+ .. config:setting:: enable-diagnostics-and-error-reporting :displayname: Enable general diagnostics and error reporting (General Logging) @@ -3238,15 +3257,15 @@ Maximum field size Enable diagnostics and error reporting ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -+----------------------------------------------+-------------------------------------------------------------------------+ -| Whether or not general diagnostics and error | - System Config path: **Environment > Logging** | -| reports are sent to Mattermost, Inc. | - ``config.json setting``: ``".LogSettings.EnableDiagnostics": "",`` | -| | - Environment variable: ``MM_LOGSETTINGS_ENABLEDIAGNOSTICS`` | -| - **true**: **(Default)** Send diagnostics | | -| and error reports. | | -| - **false**: Diagnostics and error reports | | -| aren't sent. | | -+----------------------------------------------+-------------------------------------------------------------------------+ ++----------------------------------------------+--------------------------------------------------------------------------------+ +| Whether or not general diagnostics and error | - System Config path: **Environment > Logging** | +| reports are sent to Mattermost, Inc. | - ``config.json`` setting: ``LogSettings`` > ``EnableDiagnostics`` > ``""`` | +| | - Environment variable: ``MM_LOGSETTINGS_ENABLEDIAGNOSTICS`` | +| - **true**: **(Default)** Send diagnostics | | +| and error reports. | | +| - **false**: Diagnostics and error reports | | +| aren't sent. | | ++----------------------------------------------+--------------------------------------------------------------------------------+ .. note:: @@ -3259,18 +3278,21 @@ Enable diagnostics and error reporting :environment: MM_LOGSETTINGS_VERBOSEDIAGNOSTICS :description: Configure whether to send verbose general diagnostics information. + - **true**: Send verbose diagnostics information. + - **false**: **(Default)** Verbose diagnostics information isn't sent. + Enable verbose diagnostics ^^^^^^^^^^^^^^^^^^^^^^^^^^^ -+----------------------------------------------+-------------------------------------------------------------------------+ -| Whether or not verbose general diagnostics | - System Config path: N/A | -| information is sent. | - ``config.json setting``: ``".LogSettings.VerboseDiagnostics": false,``| -| | - Environment variable: ``MM_LOGSETTINGS_VERBOSEDIAGNOSTICS`` | -| - **true**: Send verbose diagnostics | | -| information. | | -| - **false**: **(Default)** Verbose | | -| diagnostics information is not sent. | | -+----------------------------------------------+-------------------------------------------------------------------------+ ++----------------------------------------------+---------------------------------------------------------------------------------+ +| Whether or not verbose general diagnostics | - System Config path: N/A | +| information is sent. | - ``config.json`` setting: ``LogSettings`` > ``VerboseDiagnostics`` > ``false`` | +| | - Environment variable: ``MM_LOGSETTINGS_VERBOSEDIAGNOSTICS`` | +| - **true**: Send verbose diagnostics | | +| information. | | +| - **false**: **(Default)** Verbose | | +| diagnostics information isn't sent. | | ++----------------------------------------------+---------------------------------------------------------------------------------+ .. config:setting:: enable-sentry :displayname: Enable general Sentry reporting (General Logging) @@ -3279,19 +3301,22 @@ Enable verbose diagnostics :environment: MM_LOGSETTINGS_ENABLESENTRY :description: Configure whether to send general error reports to Sentry. + - **true**: **(Default)** Send error reports to Sentry. Default matches the EnableDiagnostics setting. + - **false**: Error reports are not sent to Sentry. + Enable Sentry reporting ^^^^^^^^^^^^^^^^^^^^^^^^ -+----------------------------------------------+-------------------------------------------------------------------------+ -| Whether or not general error reports are | - System Config path: N/A | -| sent to Sentry. | - ``config.json setting``: ``".LogSettings.EnableSentry": true,`` | -| | - Environment variable: ``MM_LOGSETTINGS_ENABLESENTRY`` | -| - **true**: **(Default)** Send error reports | | -| to Sentry. Default matches the | | -| EnableDiagnostics setting. | | -| - **false**: Error reports are not sent | | -| to Sentry. | | -+----------------------------------------------+-------------------------------------------------------------------------+ ++----------------------------------------------+--------------------------------------------------------------------------------+ +| Whether or not general error reports are | - System Config path: N/A | +| sent to Sentry. | - ``config.json`` setting: ``LogSettings`` > ``EnableSentry`` > ``true`` | +| | - Environment variable: ``MM_LOGSETTINGS_ENABLESENTRY`` | +| - **true**: **(Default)** Send error reports | | +| to Sentry. Default matches the | | +| EnableDiagnostics setting. | | +| - **false**: Error reports are not sent | | +| to Sentry. | | ++----------------------------------------------+--------------------------------------------------------------------------------+ ---- @@ -3312,18 +3337,18 @@ Configure logging specifically for Mattermost notifications by editing the ``con Output logs to console ^^^^^^^^^^^^^^^^^^^^^^^ -+-----------------------------------------------+---------------------------------------------------------------------------------+ -| Configure Mattermost to output notification | - System Config path: N/A | -| logs to the console. | - ``config.json setting``: ``".NotificationLogSettings.EnableConsole": true",`` | -| | - Environment variable: ``MM_NOTIFICATIONLOGSETTINGS_ENABLECONSOLE`` | -| - **true**: **(Default)** Output log messages | | -| are written to the console based on the | | -| `console log level <#console-log-level>`__ | | -| configuration. The server writes messages | | -| to the standard output stream (stdout). | | -| - **false**: Output log messages aren't | | -| written to the console. | | -+-----------------------------------------------+---------------------------------------------------------------------------------+ ++-----------------------------------------------+---------------------------------------------------------------------------------------+ +| Configure Mattermost to output notification | - System Config path: N/A | +| logs to the console. | - ``config.json`` setting: ``NotificationLogSettings`` > ``EnableConsole`` > ``true`` | +| | - Environment variable: ``MM_NOTIFICATIONLOGSETTINGS_ENABLECONSOLE`` | +| - **true**: **(Default)** Output log messages | | +| are written to the console based on the | | +| `console log level <#console-log-level>`__ | | +| configuration. The server writes messages | | +| to the standard output stream (stdout). | | +| - **false**: Output log messages aren't | | +| written to the console. | | ++-----------------------------------------------+---------------------------------------------------------------------------------------+ .. config:setting:: console-log-level :displayname: Console notification log level (Notification Logging) @@ -3339,18 +3364,18 @@ Output logs to console Console log level ^^^^^^^^^^^^^^^^^^ -+-----------------------------------------------+---------------------------------------------------------------------------------+ -| The level of detail in notification log | - System Config path: N/A | -| events written when Mattermost outputs log | - ``config.json setting``: ``".NotificationLogSettings.ConsoleLevel": DEBUG",`` | -| messages to the console. | - Environment variable: ``MM_NOTIFICATIONLOGSETTINGS_CONSOLELEVEL`` | -| | | -| - **DEBUG**: **(Default)** Outputs verbose | | -| detail for developers debugging issues. | | -| - **ERROR**: Outputs only error messages. | | -| - **INFO**: Outputs error messages and | | -| information around startup and | | -| initialization. | | -+-----------------------------------------------+---------------------------------------------------------------------------------+ ++-----------------------------------------------+-----------------------------------------------------------------------------------------+ +| The level of detail in notification log | - System Config path: N/A | +| events written when Mattermost outputs log | - ``config.json`` setting: ``NotificationLogSettings`` > ``ConsoleLevel`` > ``"DEBUG"`` | +| messages to the console. | - Environment variable: ``MM_NOTIFICATIONLOGSETTINGS_CONSOLELEVEL`` | +| | | +| - **DEBUG**: **(Default)** Outputs verbose | | +| detail for developers debugging issues. | | +| - **ERROR**: Outputs only error messages. | | +| - **INFO**: Outputs error messages and | | +| information around startup and | | +| initialization. | | ++-----------------------------------------------+-----------------------------------------------------------------------------------------+ .. config:setting:: output-console-logs-as-json :displayname: Output notification console logs as JSON (Notification Logging) @@ -3365,15 +3390,15 @@ Console log level Output console logs as JSON ^^^^^^^^^^^^^^^^^^^^^^^^^^^ -+-----------------------------------------------+---------------------------------------------------------------------------------+ -| Configure Mattermost to output notification | - System Config path: N/A | -| console logs as JSON. | - ``config.json setting``: ``".NotificationLogSettings.ConsoleJson": true",`` | -| | - Environment variable: ``MM_NOTIFICATIONLOGSETTINGS_CONSOLEJSON`` | -| - **true**: **(Default)** Logged events are | | -| written in a machine-readable JSON format. | | -| - **false**: Logged events are written in | | -| plain text. | | -+-----------------------------------------------+---------------------------------------------------------------------------------+ ++-----------------------------------------------+---------------------------------------------------------------------------------------+ +| Configure Mattermost to output notification | - System Config path: N/A | +| console logs as JSON. | - ``config.json`` setting: ``NotificationLogSettings`` > ``ConsoleJson`` > ``true`` | +| | - Environment variable: ``MM_NOTIFICATIONLOGSETTINGS_CONSOLEJSON`` | +| - **true**: **(Default)** Logged events are | | +| written in a machine-readable JSON format. | | +| - **false**: Logged events are written in | | +| plain text. | | ++-----------------------------------------------+---------------------------------------------------------------------------------------+ Typically set to **true** in a production environment. @@ -3390,16 +3415,16 @@ Typically set to **true** in a production environment. Colorize plain text console logs ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -+-----------------------------------------------+----------------------------------------------------------------------------------+ -| Enables system admins to display plain text | - System Config path: N/A | -| notification log level details in color. | - ``config.json setting``: ``".NotificationLogSettings.EnableColor": false",`` | -| | - Environment variable: ``MM_NOTIFICATIONLOGSETTINGS_ENABLECOLOR`` | -| - **true**: When logged events are output to | | -| the console as plain text, colorize log | | -| levels details. | | -| - **false**: **(Default)** Plain text log | | -| details aren't colorized in the console. | | -+-----------------------------------------------+----------------------------------------------------------------------------------+ ++-----------------------------------------------+----------------------------------------------------------------------------------------+ +| Enables system admins to display plain text | - System Config path: N/A | +| notification log level details in color. | - ``config.json`` setting: ``NotificationLogSettings`` > ``EnableColor`` > ``false`` | +| | - Environment variable: ``MM_NOTIFICATIONLOGSETTINGS_ENABLECOLOR`` | +| - **true**: When logged events are output to | | +| the console as plain text, colorize log | | +| levels details. | | +| - **false**: **(Default)** Plain text log | | +| details aren't colorized in the console. | | ++-----------------------------------------------+----------------------------------------------------------------------------------------+ .. config:setting:: output-logs-to-file :displayname: Output notification logs to file (Notification Logging) @@ -3414,19 +3439,19 @@ Colorize plain text console logs Output logs to file ^^^^^^^^^^^^^^^^^^^^ -+-----------------------------------------------+---------------------------------------------------------------------------------+ -| Configure Mattermost to output notification | - System Config path: N/A | -| console logs to a file. | - ``config.json setting``: ``".NotificationLogSettings.EnableFile": true",`` | -| | - Environment variable: ``MM_NOTIFICATIONLOGSETTINGS_ENABLEFILE`` | -| - **true**: **(Default)** Logged events are | | -| written based on the | | -| `file log level <#file-log-level>`__ | | -| configuration to a ``notifications.log`` | | -| file located in the directory configured | | -| via ``file location``. | | -| - **false**: Logged events aren't written to | | -| a file. | | -+-----------------------------------------------+---------------------------------------------------------------------------------+ ++-----------------------------------------------+---------------------------------------------------------------------------------------+ +| Configure Mattermost to output notification | - System Config path: N/A | +| console logs to a file. | - ``config.json`` setting: ``NotificationLogSettings`` > ``EnableFile`` > ``true`` | +| | - Environment variable: ``MM_NOTIFICATIONLOGSETTINGS_ENABLEFILE`` | +| - **true**: **(Default)** Logged events are | | +| written based on the | | +| `file log level <#file-log-level>`__ | | +| configuration to a ``notifications.log`` | | +| file located in the directory configured | | +| via ``file location``. | | +| - **false**: Logged events aren't written to | | +| a file. | | ++-----------------------------------------------+---------------------------------------------------------------------------------------+ .. config:setting:: file-log-directory :displayname: Notification file log directory (Notification Logging) @@ -3438,12 +3463,12 @@ Output logs to file File log directory ^^^^^^^^^^^^^^^^^^ -+-----------------------------------------------+---------------------------------------------------------------------------------+ -| The location of the notification log files. | - System Config path: N/A | -| | - ``config.json setting``: ``".NotificationLogSettings.FileLocation": "",`` | -| String input. If left blank, log files are | - Environment variable: ``MM_NOTIFICATIONLOGSETTINGS_FILELOCATION`` | -| stored in the ``./logs`` directory. | | -+-----------------------------------------------+---------------------------------------------------------------------------------+ ++-----------------------------------------------+-------------------------------------------------------------------------------------+ +| The location of the notification log files. | - System Config path: N/A | +| | - ``config.json`` setting: ``NotificationLogSettings`` > ``FileLocation`` > ``""`` | +| String input. If left blank, log files are | - Environment variable: ``MM_NOTIFICATIONLOGSETTINGS_FILELOCATION`` | +| stored in the ``./logs`` directory. | | ++-----------------------------------------------+-------------------------------------------------------------------------------------+ .. note:: @@ -3463,17 +3488,17 @@ File log directory File log level ^^^^^^^^^^^^^^ -+-------------------------------------------------+---------------------------------------------------------------------------------+ -| The level of detail in notification log events | - System Config path: N/A | -| when Mattermost outputs log messages to a file. | - ``config.json setting``: ``".NotificationLogSettings.FileLevel": INFO",`` | -| | - Environment variable: ``MM_NOTIFICATIONLOGSETTINGS_FILELEVEL`` | -| - **DEBUG**: Outputs verbose detail for | | -| developers debugging issues. | | -| - **ERROR**: Outputs only error messages. | | -| - **INFO**: **(Default)** Outputs error | | -| messages and information around startup | | -| and initialization. | | -+-------------------------------------------------+---------------------------------------------------------------------------------+ ++-------------------------------------------------+--------------------------------------------------------------------------------------+ +| The level of detail in notification log events | - System Config path: N/A | +| when Mattermost outputs log messages to a file. | - ``config.json`` setting: ``NotificationLogSettings`` > ``FileLevel`` > ``"INFO"`` | +| | - Environment variable: ``MM_NOTIFICATIONLOGSETTINGS_FILELEVEL`` | +| - **DEBUG**: Outputs verbose detail for | | +| developers debugging issues. | | +| - **ERROR**: Outputs only error messages. | | +| - **INFO**: **(Default)** Outputs error | | +| messages and information around startup | | +| and initialization. | | ++-------------------------------------------------+--------------------------------------------------------------------------------------+ .. config:setting:: output-file-logs-as-json :displayname: Output notification file logs as JSON (Notification Logging) @@ -3488,15 +3513,15 @@ File log level Output file logs as JSON ^^^^^^^^^^^^^^^^^^^^^^^^ -+-----------------------------------------------+------------------------------------------------------------------------------+ -| Configure Mattermost to output notification | - System Config path: N/A | -| file logs as JSON. | - ``config.json setting``: ``".NotificationLogSettings.FileJson": true",`` | -| | - Environment variable: ``MM_NOTIFICATIONLOGSETTINGS_FILEJSON`` | -| - **true**: **(Default)** Logged events are | | -| written in a machine-readable JSON format. | | -| - **false**: Logged events are written in | | -| plain text. | | -+-----------------------------------------------+------------------------------------------------------------------------------+ ++-----------------------------------------------+------------------------------------------------------------------------------------+ +| Configure Mattermost to output notification | - System Config path: N/A | +| file logs as JSON. | - ``config.json`` setting: ``NotificationLogSettings`` > ``FileJson`` > ``true`` | +| | - Environment variable: ``MM_NOTIFICATIONLOGSETTINGS_FILEJSON`` | +| - **true**: **(Default)** Logged events are | | +| written in a machine-readable JSON format. | | +| - **false**: Logged events are written in | | +| plain text. | | ++-----------------------------------------------+------------------------------------------------------------------------------------+ .. config:setting:: output-logs-to-multiple-targets :displayname: Output notification logs to multiple targets (Notification Logging) @@ -3508,16 +3533,16 @@ Output file logs as JSON Output logs to multiple targets ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -+-----------------------------------------------+---------------------------------------------------------------------------------------+ -| Configure Mattermost to allow any combination | - System Config path: N/A | -| of console, local file, syslog, and TCP | - ``config.json setting``: ``".NotificationLogSettings.AdvancedLoggingJSON":: "",`` | -| socket targets, and send notification log | - Environment variable: ``MM_NOTIFICATIONLOGSETTINGS_ADVANCEDLOGGINGJSON`` | -| records to multiple targets. | | -| | | -| String input can contain a filespec to | | -| another configuration file, a database DSN, | | -| or JSON. | | -+-----------------------------------------------+---------------------------------------------------------------------------------------+ ++-----------------------------------------------+-----------------------------------------------------------------------------------------------+ +| Configure Mattermost to allow any combination | - System Config path: N/A | +| of console, local file, syslog, and TCP | - ``config.json`` setting: ``NotificationLogSettings`` > ``AdvancedLoggingJSON`` > ``": ""`` | +| socket targets, and send notification log | - Environment variable: ``MM_NOTIFICATIONLOGSETTINGS_ADVANCEDLOGGINGJSON`` | +| records to multiple targets. | | +| | | +| String input can contain a filespec to | | +| another configuration file, a database DSN, | | +| or JSON. | | ++-----------------------------------------------+-----------------------------------------------------------------------------------------------+ ---- @@ -3541,7 +3566,7 @@ Output audit logs to file +--------------------------------------------------+----------------------------------------------------------------------------------------+ | Whether to write audit log files to disk. | - System Config path: **Compliance > Audit Logging** | -| | - ``config.json setting``: ``".ExperimentalAuditSettings.FileEnabled": false,`` | +| | - ``config.json`` setting: ``ExperimentalAuditSettings`` > ``FileEnabled`` > ``false`` | | - **true**: Logged events are written to the | - Environment variable: ``MM_EXPERIMENTALAUDITSETTINGS_FILEENABLED`` | | file specified by the audit file name | | | configuration setting. | | @@ -3563,15 +3588,15 @@ Output audit logs to file Audit file name ^^^^^^^^^^^^^^^ -+--------------------------------------------------+----------------------------------------------------------------------------+ -| The name of the audit log files. | - System Config path: **Compliance > Audit Logging** | -| | - ``config.json setting``: ``".ExperimentalAuditSettings.FileName": "",`` | -| The path that you set to the audit file must | - Environment variable: ``MM_EXPERIMENTALAUDITSETTINGS_FILENAME`` | -| exist and Mattermost must have write | | -| permissions in it. | | -| | | -| **Example:** ``/var/log/mattermost_audit.log`` | | -+--------------------------------------------------+----------------------------------------------------------------------------+ ++--------------------------------------------------+-----------------------------------------------------------------------------------+ +| The name of the audit log files. | - System Config path: **Compliance > Audit Logging** | +| | - ``config.json`` setting: ``ExperimentalAuditSettings`` > ``FileName`` > ``""`` | +| The path that you set to the audit file must | - Environment variable: ``MM_EXPERIMENTALAUDITSETTINGS_FILENAME`` | +| exist and Mattermost must have write | | +| permissions in it. | | +| | | +| **Example:** ``/var/log/mattermost_audit.log`` | | ++--------------------------------------------------+-----------------------------------------------------------------------------------+ .. note:: @@ -3582,16 +3607,16 @@ Audit file name :systemconsole: Compliance > Audit Logging :configjson: .ExperimentalAuditSettings.FileMaxSizeMB :environment: MM_EXPERIMENTALAUDITSETTINGS_FILEMAXSIZEMB - :description: The maximum size in megabytes for audit log files before they are rotated. + :description: The maximum size in megabytes for audit log files before they are rotated. Default is 100 MB. Maximum file size ^^^^^^^^^^^^^^^^^ +--------------------------------------------------+----------------------------------------------------------------------------------------+ | The maximum size in megabytes for audit log | - System Config path: **Compliance > Audit Logging** | -| files before they are rotated. | - ``config.json setting``: ``".ExperimentalAuditSettings.FileMaxSizeMB": 100,`` | +| files before they are rotated. | - ``config.json`` setting: ``ExperimentalAuditSettings`` > ``FileMaxSizeMB`` > ``100`` | | | - Environment variable: ``MM_EXPERIMENTALAUDITSETTINGS_FILEMAXSIZEMB`` | -| Numerical input. Default is **100**. | | +| Numerical input. Default is **100** MB. | | +--------------------------------------------------+----------------------------------------------------------------------------------------+ .. config:setting:: auditlog-filemaxagedays @@ -3599,14 +3624,14 @@ Maximum file size :systemconsole: Compliance > Audit Logging :configjson: .ExperimentalAuditSettings.FileMaxAgeDays :environment: MM_EXPERIMENTALAUDITSETTINGS_FILEMAXAGEDAYS - :description: The maximum age in days for audit log files before they are deleted. + :description: The maximum age in days for audit log files before they are deleted. Default is 0 (no limit). Maximum file age ^^^^^^^^^^^^^^^^ +--------------------------------------------------+----------------------------------------------------------------------------------------+ | The maximum age in days for audit log files | - System Config path: **Compliance > Audit Logging** | -| before they are deleted. | - ``config.json setting``: ``".ExperimentalAuditSettings.FileMaxAgeDays": 0,`` | +| before they are deleted. | - ``config.json`` setting: ``ExperimentalAuditSettings`` > ``FileMaxAgeDays`` > ``0`` | | | - Environment variable: ``MM_EXPERIMENTALAUDITSETTINGS_FILEMAXAGEDAYS`` | | Numerical input. Default is **0** (no limit). | | +--------------------------------------------------+----------------------------------------------------------------------------------------+ @@ -3616,14 +3641,14 @@ Maximum file age :systemconsole: Compliance > Audit Logging :configjson: .ExperimentalAuditSettings.FileMaxBackups :environment: MM_EXPERIMENTALAUDITSETTINGS_FILEMAXBACKUPS - :description: The maximum number of audit log file backups to retain. + :description: The maximum number of audit log file backups to retain. Default is 0 (no limit). Maximum file backups ^^^^^^^^^^^^^^^^^^^^ +--------------------------------------------------+----------------------------------------------------------------------------------------+ | The maximum number of audit log file backups | - System Config path: **Compliance > Audit Logging** | -| to retain. | - ``config.json setting``: ``".ExperimentalAuditSettings.FileMaxBackups": 0,`` | +| to retain. | - ``config.json`` setting: ``ExperimentalAuditSettings`` > ``FileMaxBackups`` > ``0`` | | | - Environment variable: ``MM_EXPERIMENTALAUDITSETTINGS_FILEMAXBACKUPS`` | | Numerical input. Default is **0** (no limit). | | +--------------------------------------------------+----------------------------------------------------------------------------------------+ @@ -3635,50 +3660,53 @@ Maximum file backups :environment: MM_EXPERIMENTALAUDITSETTINGS_FILECOMPRESS :description: Whether to compress rotated audit log files. + - **true**: Rotated audit log files are compressed. + - **false**: **(Default)** Rotated audit log files aren't compressed. + Compress audit log files ^^^^^^^^^^^^^^^^^^^^^^^^ -+--------------------------------------------------+----------------------------------------------------------------------------------------+ -| Whether to compress rotated audit log files. | - System Config path: **Compliance > Audit Logging** | -| | - ``config.json setting``: ``".ExperimentalAuditSettings.FileCompress": false,`` | -| - **true**: Rotated audit log files are | - Environment variable: ``MM_EXPERIMENTALAUDITSETTINGS_FILECOMPRESS`` | -| compressed. | | -| - **false**: **(Default)** Rotated audit log | | -| files are not compressed. | | -+--------------------------------------------------+----------------------------------------------------------------------------------------+ ++--------------------------------------------------+-------------------------------------------------------------------------------------------+ +| Whether to compress rotated audit log files. | - System Config path: **Compliance > Audit Logging** | +| | - ``config.json`` setting: ``ExperimentalAuditSettings`` > ``FileCompress`` > ``false`` | +| - **true**: Rotated audit log files are | - Environment variable: ``MM_EXPERIMENTALAUDITSETTINGS_FILECOMPRESS`` | +| compressed. | | +| - **false**: **(Default)** Rotated audit log | | +| files aren't compressed. | | ++--------------------------------------------------+-------------------------------------------------------------------------------------------+ .. config:setting:: auditlog-filemaxqueuesize :displayname: Audit log queue size (Audit Logging) :systemconsole: Compliance > Audit Logging :configjson: .ExperimentalAuditSettings.FileMaxQueueSize :environment: MM_EXPERIMENTALAUDITSETTINGS_FILEMAXQUEUESIZE - :description: The maximum number of audit log entries that can be queued. + :description: The maximum number of audit log entries that can be queued. Default is 1000. Audit log queue size ^^^^^^^^^^^^^^^^^^^^ -+--------------------------------------------------+----------------------------------------------------------------------------------------+ -| The maximum number of audit log entries that | - System Config path: **Compliance > Audit Logging** | -| can be queued. | - ``config.json setting``: ``".ExperimentalAuditSettings.FileMaxQueueSize": 1000,`` | -| | - Environment variable: ``MM_EXPERIMENTALAUDITSETTINGS_FILEMAXQUEUESIZE`` | -| Numerical input. Default is **1000**. | | -+--------------------------------------------------+----------------------------------------------------------------------------------------+ ++--------------------------------------------------+--------------------------------------------------------------------------------------------+ +| The maximum number of audit log entries that | - System Config path: **Compliance > Audit Logging** | +| can be queued. | - ``config.json`` setting: ``ExperimentalAuditSettings`` > ``FileMaxQueueSize`` > ``1000`` | +| | - Environment variable: ``MM_EXPERIMENTALAUDITSETTINGS_FILEMAXQUEUESIZE`` | +| Numerical input. Default is **1000**. | | ++--------------------------------------------------+--------------------------------------------------------------------------------------------+ .. config:setting:: auditlog-certificate :displayname: Audit log certificate (Audit Logging) :systemconsole: N/A :configjson: .ExperimentalAuditSettings.Certificate :environment: MM_EXPERIMENTALAUDITSETTINGS_CERTIFICATE - :description: Certificate configuration for audit logging. + :description: Certificate configuration for audit logging. Default is blank. Audit log certificate ^^^^^^^^^^^^^^^^^^^^^ -+--------------------------------------------------+------------------------------------------------------------------------------------+ -| Certificate configuration for audit logging. | - System Config path: N/A | -| | - ``config.json setting``: ``".ExperimentalAuditSettings.Certificate": "",`` | -| String input. Default is blank. | - Environment variable: ``MM_EXPERIMENTALAUDITSETTINGS_CERTIFICATE`` | -+--------------------------------------------------+------------------------------------------------------------------------------------+ ++--------------------------------------------------+-------------------------------------------------------------------------------------------+ +| Certificate configuration for audit logging. | - System Config path: N/A | +| | - ``config.json`` setting: ``ExperimentalAuditSettings`` > ``Certificate`` > ``""`` | +| String input. Default is blank. | - Environment variable: ``MM_EXPERIMENTALAUDITSETTINGS_CERTIFICATE`` | ++--------------------------------------------------+-------------------------------------------------------------------------------------------+ .. config:setting:: auditlog-advancedloggingjson :displayname: Output audit logs to multiple targets (Audit Logging) @@ -3690,11 +3718,11 @@ Audit log certificate Output audit logs to multiple targets ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -+--------------------------------------------------+----------------------------------------------------------------------------------------+ -| Configures Mattermost to output audit log | - System Config path: **Compliance > Audit Logging** | -| records to multiple targets. | - ``config.json setting``: ``".ExperimentalAuditSettings.AdvancedLoggingJSON": {},`` | -| | - Environment variable: ``MM_EXPERIMENTALAUDITSETTINGS_ADVANCEDLOGGINGJSON`` | -+--------------------------------------------------+----------------------------------------------------------------------------------------+ ++--------------------------------------------------+---------------------------------------------------------------------------------------------+ +| Configures Mattermost to output audit log | - System Config path: **Compliance > Audit Logging** | +| records to multiple targets. | - ``config.json`` setting: ``ExperimentalAuditSettings`` > ``AdvancedLoggingJSON`` > ``{}`` | +| | - Environment variable: ``MM_EXPERIMENTALAUDITSETTINGS_ADVANCEDLOGGINGJSON`` | ++--------------------------------------------------+---------------------------------------------------------------------------------------------+ .. note:: @@ -3724,20 +3752,20 @@ User sessions are cleared when a user tries to log in, and sessions are cleared Extend session length with activity ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -+----------------------------------------------------------------+-----------------------------------------------------------------------------------------+ -| Improves the user experience by extending sessions and keeping | - System Config path: **Environment > Session Lengths** | -| users logged in if they are active in their Mattermost apps. | - ``config.json`` setting: ``".ServiceSettings.ExtendSessionLengthWithActivity: true,`` | -| | - Environment variable: ``MM_SERVICESETTINGS_EXTENDSESSIONLENGTHWITHACTIVITY`` | -| - **true**: **(Default)** Sessions are automatically | | -| extended when users are active in their Mattermost | | -| client. User sessions only expire when users aren’t active | | -| in their Mattermost client for the entire duration of the | | -| session lengths defined. | | -| - **false**: Sessions won't extend with activity in | | -| Mattermost. User sessions immediately expire at the | | -| end of the session length or based on the | | -| `session idle timeout <#session-idle-timeout>`__ configured. | | -+----------------------------------------------------------------+-----------------------------------------------------------------------------------------+ ++----------------------------------------------------------------+-------------------------------------------------------------------------------------------------+ +| Improves the user experience by extending sessions and keeping | - System Config path: **Environment > Session Lengths** | +| users logged in if they are active in their Mattermost apps. | - ``config.json`` setting: ``ServiceSettings`` > ``ExtendSessionLengthWithActivity`` > ``true`` | +| | - Environment variable: ``MM_SERVICESETTINGS_EXTENDSESSIONLENGTHWITHACTIVITY`` | +| - **true**: **(Default)** Sessions are automatically | | +| extended when users are active in their Mattermost | | +| client. User sessions only expire when users aren’t active | | +| in their Mattermost client for the entire duration of the | | +| session lengths defined. | | +| - **false**: Sessions won't extend with activity in | | +| Mattermost. User sessions immediately expire at the | | +| end of the session length or based on the | | +| `session idle timeout <#session-idle-timeout>`__ configured. | | ++----------------------------------------------------------------+-------------------------------------------------------------------------------------------------+ .. config:setting:: terminate-sessions-on-password-change :displayname: Terminate sessions on password change (Session Lengths) @@ -3751,22 +3779,22 @@ Extend session length with activity Terminate sessions on password change ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -+----------------------------------------------------------------+-------------------------------------------------------------------------------------------+ -| Enable or disable session revocation when a user's | - System Config path: **Environment > Session Lengths** | -| password changes. | - ``config.json`` setting: ``".ServiceSettings.TerminateSessionsOnPasswordChange: true,`` | -| | - Environment variable: ``MM_SERVICESETTINGS_TERMINATESESSIONSONPASSWORDCHANGE`` | -| - **true**: **(Default for new deployments)** | | -| Session revocation is enabled. | | -| All sessions of a user expire if their password is changed | | -| (by themselves or by a system admin). If the password change | | -| is initiated by the user, their current session isn't | | -| terminated. | | -| - **false**: **(Default for existing deployments)** | | -| Session revocation is disabled. | | -| When users change their password, only the user's current | | -| session is revoked. When a system admin changes the user's | | -| password, none of the user's sessions are revoked. | | -+----------------------------------------------------------------+-------------------------------------------------------------------------------------------+ ++----------------------------------------------------------------+---------------------------------------------------------------------------------------------------+ +| Enable or disable session revocation when a user's | - System Config path: **Environment > Session Lengths** | +| password changes. | - ``config.json`` setting: ``ServiceSettings`` > ``TerminateSessionsOnPasswordChange`` > ``true`` | +| | - Environment variable: ``MM_SERVICESETTINGS_TERMINATESESSIONSONPASSWORDCHANGE`` | +| - **true**: **(Default for new deployments)** | | +| Session revocation is enabled. | | +| All sessions of a user expire if their password is changed | | +| (by themselves or by a system admin). If the password change | | +| is initiated by the user, their current session isn't | | +| terminated. | | +| - **false**: **(Default for existing deployments)** | | +| Session revocation is disabled. | | +| When users change their password, only the user's current | | +| session is revoked. When a system admin changes the user's | | +| password, none of the user's sessions are revoked. | | ++----------------------------------------------------------------+---------------------------------------------------------------------------------------------------+ .. config:setting:: session-length-for-adldap-and-email :displayname: Session length for AD/LDAP and email (Session Lengths) @@ -3780,14 +3808,14 @@ Terminate sessions on password change Session length for AD/LDAP and email ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -+----------------------------------------------------------------+--------------------------------------------------------------------------------+ -| Set the number of hours counted from the last time a user | - System Config path: **Environment > Session Lengths** | -| entered their credentials into the web app or the desktop | - ``config.json`` setting: ``".ServiceSettings.SessionLengthWebInHours: 720,`` | -| app to the expiry of the user’s session on email and AD/LDAP | - Environment variable: ``MM_SERVICESETTINGS_SESSIONLENGTHWEBINHOURS`` | -| authentication. | | -| | | -| Numerical input in hours. Default is **720** hours. | | -+----------------------------------------------------------------+--------------------------------------------------------------------------------+ ++----------------------------------------------------------------+----------------------------------------------------------------------------------------+ +| Set the number of hours counted from the last time a user | - System Config path: **Environment > Session Lengths** | +| entered their credentials into the web app or the desktop | - ``config.json`` setting: ``ServiceSettings`` > ``SessionLengthWebInHours`` > ``720`` | +| app to the expiry of the user’s session on email and AD/LDAP | - Environment variable: ``MM_SERVICESETTINGS_SESSIONLENGTHWEBINHOURS`` | +| authentication. | | +| | | +| Numerical input in hours. Default is **720** hours. | | ++----------------------------------------------------------------+----------------------------------------------------------------------------------------+ .. note:: @@ -3803,13 +3831,13 @@ Session length for AD/LDAP and email Session length for mobile ~~~~~~~~~~~~~~~~~~~~~~~~~ -+----------------------------------------------------------------+-----------------------------------------------------------------------------------+ -| Set the number of hours counted from the last time a user | - System Config path: **Environment > Session Lengths** | -| entered their credential into the mobile app to the expiry | - ``config.json`` setting: ``".ServiceSettings.SessionLengthMobileInHours: 720,`` | -| of the user’s session. | - Environment variable: ``MM_SERVICESETTINGS_SESSIONLENGTHMOBILEINHOURS`` | -| | | -| Numerical input in hours. Default is **720** hours. | | -+----------------------------------------------------------------+-----------------------------------------------------------------------------------+ ++----------------------------------------------------------------+-------------------------------------------------------------------------------------------+ +| Set the number of hours counted from the last time a user | - System Config path: **Environment > Session Lengths** | +| entered their credential into the mobile app to the expiry | - ``config.json`` setting: ``ServiceSettings`` > ``SessionLengthMobileInHours`` > ``720`` | +| of the user’s session. | - Environment variable: ``MM_SERVICESETTINGS_SESSIONLENGTHMOBILEINHOURS`` | +| | | +| Numerical input in hours. Default is **720** hours. | | ++----------------------------------------------------------------+-------------------------------------------------------------------------------------------+ .. note:: @@ -3825,16 +3853,16 @@ Session length for mobile Session length for SSO ~~~~~~~~~~~~~~~~~~~~~~ -+----------------------------------------------------------------+----------------------------------------------------------------------------------+ -| Set the number of hours from the last time a user entered | - System Config path: **Environment > Session Lengths** | -| their SSO credentials to the expiry of the user’s session. | - ``config.json`` setting: ``".ServiceSettings.SessionLengthSSOInHours: 720,`` | -| This setting defines the session length for SSO | - Environment variable: ``MM_SERVICESETTINGS_SESSIONLENGTHSSOINHOURS`` | -| authentication, such as SAML, GitLab, and OAuth 2.0. | | -| | | -| Numerical input in hours. Default is **720** hours. | | -| Numbers as decimals are also valid values for this | | -| configuration setting. | | -+----------------------------------------------------------------+----------------------------------------------------------------------------------+ ++----------------------------------------------------------------+------------------------------------------------------------------------------------------+ +| Set the number of hours from the last time a user entered | - System Config path: **Environment > Session Lengths** | +| their SSO credentials to the expiry of the user’s session. | - ``config.json`` setting: ``ServiceSettings`` > ``SessionLengthSSOInHours`` > ``720`` | +| This setting defines the session length for SSO | - Environment variable: ``MM_SERVICESETTINGS_SESSIONLENGTHSSOINHOURS`` | +| authentication, such as SAML, GitLab, and OAuth 2.0. | | +| | | +| Numerical input in hours. Default is **720** hours. | | +| Numbers as decimals are also valid values for this | | +| configuration setting. | | ++----------------------------------------------------------------+------------------------------------------------------------------------------------------+ .. note:: @@ -3851,11 +3879,11 @@ Session length for SSO Session cache ~~~~~~~~~~~~~ -+----------------------------------------------------------------+-----------------------------------------------------------------------------+ -| Set the number of minutes to cache a session in memory. | - System Config path: **Environment > Session Lengths** | -| | - ``config.json`` setting: ``".ServiceSettings.SessionCacheInMinutes: 10,`` | -| Numerical input in minutes. Default is **10** minutes. | - Environment variable: ``MM_SERVICESETTINGS_SESSIONCACHEINMINUTES`` | -+----------------------------------------------------------------+-----------------------------------------------------------------------------+ ++----------------------------------------------------------------+-------------------------------------------------------------------------------------+ +| Set the number of minutes to cache a session in memory. | - System Config path: **Environment > Session Lengths** | +| | - ``config.json`` setting: ``ServiceSettings`` > ``SessionCacheInMinutes`` > ``10`` | +| Numerical input in minutes. Default is **10** minutes. | - Environment variable: ``MM_SERVICESETTINGS_SESSIONCACHEINMINUTES`` | ++----------------------------------------------------------------+-------------------------------------------------------------------------------------+ .. config:setting:: session-idle-timeout :displayname: Session idle timeout (Session Lengths) @@ -3869,15 +3897,15 @@ Session cache Session idle timeout ~~~~~~~~~~~~~~~~~~~~ -+----------------------------------------------------------------+--------------------------------------------------------------------------------------+ -| The number of minutes from the last time a user was active | - System Config path: N/A | -| on the system to the expiry of the user’s session. | - ``config.json`` setting: ``".ServiceSettings.SessionIdleTimeoutInMinutes: 43200,`` | -| Once expired, the user will need to log in to continue. | - Environment variable: ``MM_SERVICESETTINGS_SESSIONIDLETIMEOUTINMINUTES`` | -| | | -| Numerical input in minutes. Default is **43200** (30 days). | | -| Minimum value is **5** minutes, and a value of **0** sets | | -| the time as unlimited. | | -+----------------------------------------------------------------+--------------------------------------------------------------------------------------+ ++----------------------------------------------------------------+----------------------------------------------------------------------------------------------+ +| The number of minutes from the last time a user was active | - System Config path: N/A | +| on the system to the expiry of the user’s session. | - ``config.json`` setting: ``ServiceSettings`` > ``SessionIdleTimeoutInMinutes`` > ``43200`` | +| Once expired, the user will need to log in to continue. | - Environment variable: ``MM_SERVICESETTINGS_SESSIONIDLETIMEOUTINMINUTES`` | +| | | +| Numerical input in minutes. Default is **43200** (30 days). | | +| Minimum value is **5** minutes, and a value of **0** sets | | +| the time as unlimited. | | ++----------------------------------------------------------------+----------------------------------------------------------------------------------------------+ .. note:: @@ -3910,14 +3938,14 @@ See the :doc:`performance monitoring Performance Monitoring** | -| | - ``config.json setting``: ``".MetricsSettings.Enable": false",`` | -| - **true**: Performance monitoring data | - Environment variable: ``MM_METRICSSETTINGS_ENABLE`` | -| collection and profiling is enabled. | | -| - **false**: **(Default)** Mattermost | | -| performance monitoring is disabled. | | -+-----------------------------------------------+---------------------------------------------------------------------+ ++-----------------------------------------------+---------------------------------------------------------------------------+ +| Enable or disable performance monitoring. | - System Config path: **Environment > Performance Monitoring** | +| | - ``config.json`` setting: ``MetricsSettings`` > ``Enable`` > ``false`` | +| - **true**: Performance monitoring data | - Environment variable: ``MM_METRICSSETTINGS_ENABLE`` | +| collection and profiling is enabled. | | +| - **false**: **(Default)** Mattermost | | +| performance monitoring is disabled. | | ++-----------------------------------------------+---------------------------------------------------------------------------+ See the :doc:`performance monitoring ` documentation to learn more. @@ -3934,14 +3962,14 @@ See the :doc:`performance monitoring Performance Monitoring** | -| | - ``config.json setting``: ``".MetricsSettings.EnableClientMetrics": false",`` | -| - **true**: Client performance monitoring data | - Environment variable: ``MM_METRICSSETTINGS_ENABLE`` | -| collection and profiling is enabled. | | -| - **false**: **(Default)** Mattermost | | -| client performance monitoring is disabled. | | -+------------------------------------------------------+----------------------------------------------------------------------------------+ ++------------------------------------------------------+----------------------------------------------------------------------------------------+ +| Enable or disable client performance monitoring. | - System Config path: **Environment > Performance Monitoring** | +| | - ``config.json`` setting: ``MetricsSettings`` > ``EnableClientMetrics`` > ``false`` | +| - **true**: Client performance monitoring data | - Environment variable: ``MM_METRICSSETTINGS_ENABLE`` | +| collection and profiling is enabled. | | +| - **false**: **(Default)** Mattermost | | +| client performance monitoring is disabled. | | ++------------------------------------------------------+----------------------------------------------------------------------------------------+ .. config:setting:: client-side-user-ids :displayname: Client side user ids (Performance Monitoring) @@ -3955,7 +3983,7 @@ Client side user ids +---------------------------------------------------------------+-------------------------------------------------------------------------+ | A list of comma-separated user IDs you want to track for | - System Config path: **Environment > Performance Monitoring** | -| client-side webapp metrics. | - ``config.json setting``: ``".MetricsSettings.ClientSideUserIds"`` | +| client-side webapp metrics. | - ``config.json`` setting: ``MetricsSettings`` > ``ClientSideUserIds`` | | | - Environment variable: ``MM_METRICSSETTINGS_LISTENADDRESS`` | | Limited to 5 user IDs. Blank by default. | | +---------------------------------------------------------------+-------------------------------------------------------------------------+ @@ -3974,12 +4002,12 @@ Client side user ids Listen address ~~~~~~~~~~~~~~~ -+---------------------------------------------------------------+-------------------------------------------------------------------------+ -| The port the Mattermost server will listen on to expose | - System Config path: **Environment > Performance Monitoring** | -| performance metrics, when enabled. | - ``config.json setting``: ``".MetricsSettings.ListenAddress": 8067",`` | -| | - Environment variable: ``MM_METRICSSETTINGS_LISTENADDRESS`` | -| Numerical input. Default is **8067**. | | -+---------------------------------------------------------------+-------------------------------------------------------------------------+ ++---------------------------------------------------------------+-------------------------------------------------------------------------------+ +| The port the Mattermost server will listen on to expose | - System Config path: **Environment > Performance Monitoring** | +| performance metrics, when enabled. | - ``config.json`` setting: ``MetricsSettings`` > ``ListenAddress`` > ``8067`` | +| | - Environment variable: ``MM_METRICSSETTINGS_LISTENADDRESS`` | +| Numerical input. Default is **8067**. | | ++---------------------------------------------------------------+-------------------------------------------------------------------------------+ ---- @@ -4004,15 +4032,15 @@ Configure developer mode by going to **System Console > Environment > Developer* Enable testing commands ~~~~~~~~~~~~~~~~~~~~~~~ -+---------------------------------------------------+--------------------------------------------------------------------------+ -| Enable or disable the ``/test`` slash command. | - System Config path: **Environment > Developer** | -| | - ``config.json setting``: ``".ServiceSettings.EnableTesting": true",`` | -| - **true**: **(Default)** The ``/test`` slash | - Environment variable: ``MM_SERVICESETTINGS_ENABLETESTING`` | -| command is enabled to load test accounts | | -| and test data. | | -| - **false**: The ``/test`` slash command is | | -| disabled. | | -+---------------------------------------------------+--------------------------------------------------------------------------+ ++---------------------------------------------------+--------------------------------------------------------------------------------+ +| Enable or disable the ``/test`` slash command. | - System Config path: **Environment > Developer** | +| | - ``config.json`` setting: ``ServiceSettings`` > ``EnableTesting`` > ``true`` | +| - **true**: **(Default)** The ``/test`` slash | - Environment variable: ``MM_SERVICESETTINGS_ENABLETESTING`` | +| command is enabled to load test accounts | | +| and test data. | | +| - **false**: The ``/test`` slash command is | | +| disabled. | | ++---------------------------------------------------+--------------------------------------------------------------------------------+ .. config:setting:: enable-developer-mode :displayname: Enable developer mode (Developer) @@ -4027,16 +4055,16 @@ Enable testing commands Enable developer mode ~~~~~~~~~~~~~~~~~~~~~ -+-----------------------------------------------+---------------------------------------------------------------------------+ -| Enable or disable developer mode. | - System Config path: **Environment > Developer** | -| | - ``config.json setting``: ``".ServiceSettings.EnableDeveloper": true",`` | -| - **true**: **(Default)** Javascript errors | - Environment variable: ``MM_SERVICESETTINGS_ENABLEDEVELOPER`` | -| are shown in a banner at the top of | | -| Mattermost the user interface. | | -| Not recommended for use in production. | | -| - **false**: Users are not alerted to | | -| Javascript errors. | | -+-----------------------------------------------+---------------------------------------------------------------------------+ ++-----------------------------------------------+---------------------------------------------------------------------------------+ +| Enable or disable developer mode. | - System Config path: **Environment > Developer** | +| | - ``config.json`` setting: ``ServiceSettings`` > ``EnableDeveloper`` > ``true`` | +| - **true**: **(Default)** Javascript errors | - Environment variable: ``MM_SERVICESETTINGS_ENABLEDEVELOPER`` | +| are shown in a banner at the top of | | +| Mattermost the user interface. | | +| Not recommended for use in production. | | +| - **false**: Users are not alerted to | | +| Javascript errors. | | ++-----------------------------------------------+---------------------------------------------------------------------------------+ .. config:setting:: enable-client-debugging :displayname: Enable client debugging (Developer) @@ -4051,16 +4079,16 @@ Enable developer mode Enable client debugging ~~~~~~~~~~~~~~~~~~~~~~~ -+---------------------------------------------------+---------------------------------------------------------------------------------------------+ -| Enable or disable client-side debugging settings | - System Config path: **Environment > Developer** | -| found in **Settings > Advanced > Debugging** | - ``config.json setting``: ``".ServiceSettings.EnableClientPerformanceDebugging": false",`` | -| for individual users. | - Environment variable: ``MM_SERVICESETTINGS_ENABLECLIENTPERFORMANCEDEBUGGING`` | -| | | -| - **true**: Those settings are visible and can | | -| be enabled by users. | | -| - **false**: **(Default)** Those settings are | | -| hidden and disabled. | | -+---------------------------------------------------+---------------------------------------------------------------------------------------------+ ++---------------------------------------------------+---------------------------------------------------------------------------------------------------+ +| Enable or disable client-side debugging settings | - System Config path: **Environment > Developer** | +| found in **Settings > Advanced > Debugging** | - ``config.json`` setting: ``ServiceSettings`` > ``EnableClientPerformanceDebugging`` > ``false`` | +| for individual users. | - Environment variable: ``MM_SERVICESETTINGS_ENABLECLIENTPERFORMANCEDEBUGGING`` | +| | | +| - **true**: Those settings are visible and can | | +| be enabled by users. | | +| - **false**: **(Default)** Those settings are | | +| hidden and disabled. | | ++---------------------------------------------------+---------------------------------------------------------------------------------------------------+ See the :ref:`client debugging ` documentation to learn more. @@ -4078,25 +4106,22 @@ Allow untrusted internal connections This setting is intended to prevent users located outside your local network from using the Mattermost server to request confidential data from inside your network. Care should be used when configuring this setting to prevent unintended access to your local network. -+-----------------------------------------------+-----------------------------------------------------------------------------------------------+ -| Limit the ability for the Mattermost server | - System Config path: **Environment > Developer** | -| to make untrusted requests within its local | - ``config.json setting``: ``".ServiceSettings.AllowedUntrustedInternalConnections": "",`` | -| network. A request is considered “untrusted” | - Environment variable: ``MM_SERVICESETTINGS_ALLOWEDUNTRUSTEDINTERNALCONNECTIONS`` | -| when it’s made on behalf of a client. | | -+-----------------------------------------------+-----------------------------------------------------------------------------------------------+ -| This setting is a whitelist of local network addresses that can be requested by the Mattermost server. It’s configured as a | -| whitespace-separated list of hostnames, IP addresses, and CIDR ranges that can be accessed. | -| | -| Requests that can only be configured by system admins are considered trusted and won't be affected by this setting. Trusted URLs include | -| ones used for OAuth login or for sending push notifications. | -| | -| The following features make untrusted requests and are affected by this setting: | -| | -| - Integrations using webhooks, slash commands, or message actions. This prevents them from requesting endpoints within the local network. | -| - Link previews. When a link to a local network address is posted in a chat message, this prevents a link preview from being displayed. | -| - The local :doc:`image proxy `. If the local image proxy is enabled, images located on | -| the local network cannot be used by integrations or posted in chat messages. | -+-----------------------------------------------+-----------------------------------------------------------------------------------------------+ ++-----------------------------------------------+----------------------------------------------------------------------------------------------------+ +| Limit the ability for the Mattermost server | - System Config path: **Environment > Developer** | +| to make untrusted requests within its local | - ``config.json`` setting: ``ServiceSettings`` > ``AllowedUntrustedInternalConnections`` > ``""`` | +| network. A request is considered “untrusted” | - Environment variable: ``MM_SERVICESETTINGS_ALLOWEDUNTRUSTEDINTERNALCONNECTIONS`` | +| when it’s made on behalf of a client. | | ++-----------------------------------------------+----------------------------------------------------------------------------------------------------+ + +This setting is a whitelist of local network addresses that can be requested by the Mattermost server. It’s configured as a whitespace-separated list of hostnames, IP addresses, and CIDR ranges that can be accessed. + +Requests that can only be configured by system admins are considered trusted and won't be affected by this setting. Trusted URLs include ones used for OAuth login or for sending push notifications. + +The following features make untrusted requests and are affected by this setting: + +- Integrations using webhooks, slash commands, or message actions. This prevents them from requesting endpoints within the local network. +- Link previews. When a link to a local network address is posted in a chat message, this prevents a link preview from being displayed. +- The local :doc:`image proxy `. If the local image proxy is enabled, images located on the local network cannot be used by integrations or posted in chat messages. Some examples of when you may want to modify this setting include: @@ -4133,17 +4158,17 @@ Enable biometric authentication .. include:: ../../_static/badges/ent-adv-only.rst :start-after: :nosearch: -+-----------------------------------------------+-------------------------------------------------------------------------------------+ -| Enforce biometric authentication, with | - System Config path: **Environment > Mobile Security** | -| PIN/passcode fallback, before accessing | - ``config.json setting``: ``".NativeAppSettings.MobileEnableBiometrics": false",`` | -| the app. Users will be prompted based on | - Environment variable: ``MM_NATIVEAPPSETTINGS_MOBILEENABLEBIOMETRICS`` | -| session activity and server switching rules. | | -| | | -| - **true**: Biometric authentication is | | -| enabled. | | -| - **false**: **(Default)** Biometric | | -| authentication is disabled. | | -+-----------------------------------------------+-------------------------------------------------------------------------------------+ ++-----------------------------------------------+-------------------------------------------------------------------------------------------+ +| Enforce biometric authentication, with | - System Config path: **Environment > Mobile Security** | +| PIN/passcode fallback, before accessing | - ``config.json`` setting: ``NativeAppSettings`` > ``MobileEnableBiometrics`` > ``false`` | +| the app. Users will be prompted based on | - Environment variable: ``MM_NATIVEAPPSETTINGS_MOBILEENABLEBIOMETRICS`` | +| session activity and server switching rules. | | +| | | +| - **true**: Biometric authentication is | | +| enabled. | | +| - **false**: **(Default)** Biometric | | +| authentication is disabled. | | ++-----------------------------------------------+-------------------------------------------------------------------------------------------+ .. note:: @@ -4170,18 +4195,18 @@ Enable jailbreak/root protection .. include:: ../../_static/badges/ent-adv-only.rst :start-after: :nosearch: -+-----------------------------------------------+----------------------------------------------------------------------------------------+ -| Prevent access to the app on devices | - System Config path: **Environment > Mobile Security** | -| detected as jailbroken or rooted. If a | - ``config.json setting``: ``".NativeAppSettings.MobileJailbreakProtection": false",`` | -| device fails the security check, users will | - Environment variable: ``MM_NATIVEAPPSETTINGS_MOBILEJAILBREAKPROTECTION`` | -| be denied access or prompted to switch to a | | -| compliant server. | | -| | | -| - **true**: Jailbreak/Root protection is | | -| enabled. | | -| - **false**: **(Default)** Jailbreak/Root | | -| protection is disabled. | | -+-----------------------------------------------+----------------------------------------------------------------------------------------+ ++-----------------------------------------------+----------------------------------------------------------------------------------------------+ +| Prevent access to the app on devices | - System Config path: **Environment > Mobile Security** | +| detected as jailbroken or rooted. If a | - ``config.json`` setting: ``NativeAppSettings`` > ``MobileJailbreakProtection`` > ``false`` | +| device fails the security check, users will | - Environment variable: ``MM_NATIVEAPPSETTINGS_MOBILEJAILBREAKPROTECTION`` | +| be denied access or prompted to switch to a | | +| compliant server. | | +| | | +| - **true**: Jailbreak/Root protection is | | +| enabled. | | +| - **false**: **(Default)** Jailbreak/Root | | +| protection is disabled. | | ++-----------------------------------------------+----------------------------------------------------------------------------------------------+ .. note:: @@ -4203,18 +4228,18 @@ Prevent screen capture .. include:: ../../_static/badges/ent-adv-only.rst :start-after: :nosearch: -+-----------------------------------------------+-----------------------------------------------------------------------------------------+ -| Block screenshots and screen recordings when | - System Config path: **Environment > Mobile Security** | -| using the mobile app. Screenshots will | - ``config.json setting``: ``".NativeAppSettings.MobilePreventScreenCapture": false",`` | -| appear blank, and screen recordings will | - Environment variable: ``MM_NATIVEAPPSETTINGS_MOBILEPREVENTSCREENCAPTURE`` | -| blur (iOS) or show a black screen (Android). | | -| Also applies when switching apps. | | -| | | -| - **true**: Screen capture blocking is | | -| enabled. | | -| - **false**: **(Default)** Screen capture | | -| blocking is disabled. | | -+-----------------------------------------------+-----------------------------------------------------------------------------------------+ ++-----------------------------------------------+-----------------------------------------------------------------------------------------------+ +| Block screenshots and screen recordings when | - System Config path: **Environment > Mobile Security** | +| using the mobile app. Screenshots will | - ``config.json`` setting: ``NativeAppSettings`` > ``MobilePreventScreenCapture`` > ``false`` | +| appear blank, and screen recordings will | - Environment variable: ``MM_NATIVEAPPSETTINGS_MOBILEPREVENTSCREENCAPTURE`` | +| blur (iOS) or show a black screen (Android). | | +| Also applies when switching apps. | | +| | | +| - **true**: Screen capture blocking is | | +| enabled. | | +| - **false**: **(Default)** Screen capture | | +| blocking is disabled. | | ++-----------------------------------------------+-----------------------------------------------------------------------------------------------+ config.json-only settings ------------------------- @@ -4237,7 +4262,7 @@ Disable Customer Portal requests +-----------------------------------------------+---------------------------------------------------------------------------+ | Enable or disable customer portal requests. | - System Config path: **N/A** | -| | - ``config.json setting``: ``CloudSettings`` > ``Disable`` > ``false,`` | +| | - ``config.json`` setting: ``CloudSettings`` > ``Disable`` > ``true,`` | | | - Environment variable: ``MM_CLOUDSETTINGS_DISABLE`` | | - **true**: **(Default)** Server-side | | | requests made to the customer portal are | | @@ -4249,13 +4274,15 @@ Disable Customer Portal requests +-----------------------------------------------+---------------------------------------------------------------------------+ .. note:: + Cloud admins can’t modify this configuration setting. .. config:setting:: enable-api-team-deletion :displayname: Enable API team deletion (ServiceSettings) :systemconsole: N/A - :configjson: EnableAPITeamDeletion + :configjson: .ServiceSettings.EnableAPITeamDeletion :environment: N/A + :description: Allow permanent team deletion via API. - **true**: The ``api/v4/teams/{teamid}?permanent=true`` API endpoint can be called by team admins and system admins (or users with appropriate permissions), or by running the mmctl team delete command, to permanently delete a team. - **false**: **(Default)** The API endpoint cannot be called, but ``api/v4/teams/{teamid}`` can still be used to soft delete a team. @@ -4263,21 +4290,26 @@ Disable Customer Portal requests Enable API team deletion ~~~~~~~~~~~~~~~~~~~~~~~~ -This setting isn't available in the System Console and can only be set in ``config.json``. ++-----------------------------------------------------------------+----------------------------------------------------------------------------------------+ +| Allow permanent team deletion via API. | - System Config path: N/A | +| | - ``config.json`` setting: ``ServiceSettings`` > ``EnableAPITeamDeletion`` > ``false`` | +| - **true**: Team and system admins (or users with appropriate | - Environment variable: N/A | +| permissions) can call ``api/v4/teams/{teamid}?permanent=true``| | +| or use ``mmctl team delete`` to permanently delete a team. | | +| - **false**: **(Default)** Endpoint not available; | | +| ``api/v4/teams/{teamid}`` still soft deletes a team. | | ++-----------------------------------------------------------------+----------------------------------------------------------------------------------------+ -**True**: The ``api/v4/teams/{teamid}?permanent=true`` API endpoint can be called by team admins and system admins (or users with appropriate permissions), or by running the :ref:`mmctl team delete ` command to permanently delete a team. - -**False**: The API endpoint cannot be called. Note that ``api/v4/teams/{teamid}`` can still be used to soft delete a team. +.. note:: -+-------------------------------------------------------------------------------------------------------------------+ -| This feature's ``config.json`` setting is ``"EnableAPITeamDeletion": false`` with options ``true`` and ``false``. | -+-------------------------------------------------------------------------------------------------------------------+ + This setting isn’t available in the System Console and can only be set in ``config.json``. .. config:setting:: enable-api-user-deletion :displayname: Enable API user deletion (ServiceSettings) :systemconsole: N/A - :configjson: EnableAPIUserDeletion + :configjson: .ServiceSettings.EnableAPIUserDeletion :environment: N/A + :description: Allow permanent user deletion via API. - **true**: The ``api/v4/users/{userid}?permanent=true`` API endpoint can be called by system admins (or users with appropriate permissions), or by running the mmctl user delete command, to permanently delete a user. - **false**: **(Default)** The API endpoint cannot be called, but ``api/v4/users/{userid}`` can still be used to soft delete a user. @@ -4285,21 +4317,26 @@ This setting isn't available in the System Console and can only be set in ``conf Enable API user deletion ~~~~~~~~~~~~~~~~~~~~~~~~ -This setting isn't available in the System Console and can only be set in ``config.json``. ++-----------------------------------------------------------------+----------------------------------------------------------------------------------------+ +| Allow permanent user deletion via API. | - System Config path: N/A | +| | - ``config.json`` setting: ``ServiceSettings`` > ``EnableAPIUserDeletion`` > ``false`` | +| - **true**: System admins (or users with appropriate | - Environment variable: N/A | +| permissions) can call ``api/v4/users/{userid}?permanent=true``| | +| or use ``mmctl user delete`` to permanently delete a user. | | +| - **false**: **(Default)** Endpoint not available; | | +| ``api/v4/users/{userid}`` still soft deletes a user. | | ++-----------------------------------------------------------------+----------------------------------------------------------------------------------------+ -**True**: The ``api/v4/users/{userid}?permanent=true`` API endpoint can be called by system admins (or users with appropriate permissions), or by running the :ref:`mmctl user delete ` command, to permanently delete a user. - -**False**: The API endpoint cannot be called. Note that ``api/v4/users/{userid}`` can still be used to soft delete a user. +.. note:: -+-------------------------------------------------------------------------------------------------------------------+ -| This feature's ``config.json`` setting is ``"EnableAPIUserDeletion": false`` with options ``true`` and ``false``. | -+-------------------------------------------------------------------------------------------------------------------+ + This setting isn’t available in the System Console and can only be set in ``config.json``. .. config:setting:: enable-api-channel-deletion :displayname: Enable API channel deletion (ServiceSettings) :systemconsole: N/A - :configjson: EnableAPIChannelDeletion + :configjson: .ServiceSettings.EnableAPIChannelDeletion :environment: N/A + :description: Allow permanent channel deletion via API. - **true**: The ``api/v4/channels/{channelid}?permanent=true`` API endpoint can be called by system admins (or users with appropriate permissions), or by running the mmctl channel delete command, to permanently delete a channel. - **false**: **(Default)** The API endpoint cannot be called, but ``api/v4/channels/{channelid}`` can still be used to soft delete a channel. @@ -4307,31 +4344,48 @@ This setting isn't available in the System Console and can only be set in ``conf Enable API channel deletion ~~~~~~~~~~~~~~~~~~~~~~~~~~~ -This setting isn't available in the System Console and can only be set in ``config.json``. ++-----------------------------------------------------------------+-------------------------------------------------------------------------------------------+ +| Allow permanent channel deletion via API. | - System Config path: N/A | +| | - ``config.json`` setting: ``ServiceSettings`` > ``EnableAPIChannelDeletion`` > ``false`` | +| - **true**: System admins (or users with appropriate | - Environment variable: N/A | +| permissions) can call | | +| ``api/v4/channels/{channelid}?permanent=true`` or use | | +| ``mmctl channel delete`` to permanently delete a channel. | | +| - **false**: **(Default)** Endpoint not available; | | +| ``api/v4/channels/{channelid}`` still soft deletes a channel. | | ++-----------------------------------------------------------------+-------------------------------------------------------------------------------------------+ + +.. note:: -**True**: The ``api/v4/channels/{channelid}?permanent=true`` API endpoint can be called by system admins (or users with appropriate permissions), or by running the :ref:`mmctl channel delete ` command, to permanently delete a channel. + This setting isn’t available in the System Console and can only be set in ``config.json``. -**False**: The API endpoint cannot be called. Note that ``api/v4/channels/{channelid}`` can still be used to soft delete a channel. +.. config:setting:: enable-desktop-app-developer-mode + :displayname: Enable desktop app developer mode (ServiceSettings) + :systemconsole: N/A + :configjson: N/A + :environment: N/A + :description: Enable developer debugging options in the Mattermost desktop app. Disabled by default. -+----------------------------------------------------------------------------------------------------------------------+ -| This feature's ``config.json`` setting is ``"EnableAPIChannelDeletion": false`` with options ``true`` and ``false``. | -+----------------------------------------------------------------------------------------------------------------------+ + - **true**: Developer debugging options are available in the Mattermost desktop app by going to the **View > Developer Tools** menu + - **false**: **(Default)** Developer debugging options are unavailable in the Mattermost desktop app. Enable desktop app developer mode ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -From Desktop App v5.10, this setting enables developer debugging options available by going to the **View > Developer Tools** menu in the Mattermost desktop app. +From Desktop App v5.10, this setting enables developer debugging options available by going to the **View > Developer Tools** menu in the Mattermost desktop app. This setting isn't available in the System Console and can only be enabled in ``config.json`` by setting the environment variable ``MM_DESKTOP_DEVELOPER_MODE`` to ``true``. This setting is disabled by default. -**True**: Unlocks the following options in the Desktop App for the purposes of troubleshooting and debugging. You should only enable this setting if instructed to by a Mattermost developer: +- **True**: Unlocks the following options in the Desktop App for the purposes of troubleshooting and debugging. You should only enable this setting if instructed to by a Mattermost developer: + + - **Browser Mode Only**: Completely disables the preload script and stops web app components from knowing they're in the desktop app. This option should be the best indicator of whether a web app component is causing performance and/or memory retention issues. This option disables notifications, cross-tab navigation, unread/mentions badges, the calls widget, and breaks resizing on macOS. + - **Disable Notification Storage**: Turns off maps that hold references to unread notifications until they've been selected & read. This option is good for debugging in cases where Mattermost is holding onto too many references to unused notifications. + - **Disable User Activity Monitor**: Turns off the interval that checks whether the user is away or not. This option is good for debugging whether a user's availability status is causing unexpected desktop app behavior. + - **Disable Context Menu**: Turns off the context menu attached to the BrowserViews. This option is good as a library santity check. + - **Force Legacy Messaging API**: Forces the app to revert back to the old messaging API instead of the newer contextBridge API. This option is a good santity check to confirm whether the new API is responsible for holding onto memory. + - **Force New Messaging API**: Forces the app to use the contextBridge API and completely disables the legacy one. This option forces off listeners for the legacy API. - * **Browser Mode Only**: Completely disables the preload script and stops web app components from knowing they're in the desktop app. This option should be the best indicator of whether a web app component is causing performance and/or memory retention issues. This option disables notifications, cross-tab navigation, unread/mentions badges, the calls widget, and breaks resizing on macOS. - * **Disable Notification Storage**: Turns off maps that hold references to unread notifications until they've been selected & read. This option is good for debugging in cases where Mattermost is holding onto too many references to unused notifications. - * **Disable User Activity Monitor**: Turns off the interval that checks whether the user is away or not. This option is good for debugging whether a user's availability status is causing unexpected desktop app behavior. - * **Disable Context Menu**: Turns off the context menu attached to the BrowserViews. This option is good as a library santity check. - * **Force Legacy Messaging API**: Forces the app to revert back to the old messaging API instead of the newer contextBridge API. This option is a good santity check to confirm whether the new API is responsible for holding onto memory. - * **Force New Messaging API**: Forces the app to use the contextBridge API and completely disables the legacy one. This option forces off listeners for the legacy API. +- **False**: **(Default)** Developer debugging options are locked and unavailable in the Desktop App. Redis cache backend ~~~~~~~~~~~~~~~~~~~ @@ -4359,7 +4413,7 @@ Cache type +-----------------------------------------------+---------------------------------------------------------------------------+ | Define the cache type. | - System Config path: **N/A** | -| | - ``config.json setting``: ``CacheSettings`` > ``CacheType,`` > ``lru`` | +| | - ``config.json`` setting: ``CacheSettings`` > ``CacheType,`` > ``lru`` | | - **lru**: **(Default)** Mattermost uses the | - Environment variable: ``MM_CACHESETTINGS_CACHETYPE`` | | in-memory cache store. | | | - **redis**: Mattermost uses the configured | | @@ -4378,7 +4432,7 @@ Redis address +-----------------------------------------------+---------------------------------------------------------------------------+ | The hostname of the Redis host. | - System Config path: **N/A** | -| | - ``config.json setting``: ``CacheSettings`` > ``RedisAddress,`` | +| | - ``config.json`` setting: ``CacheSettings`` > ``RedisAddress,`` | | String input. | - Environment variable: ``MM_CACHESETTINGS_REDISADDRESS`` | +-----------------------------------------------+---------------------------------------------------------------------------+ @@ -4394,7 +4448,7 @@ Redis password +-----------------------------------------------+---------------------------------------------------------------------------+ | The password of the Redis host. | - System Config path: **N/A** | -| | - ``config.json setting``: ``CacheSettings`` > ``RedisPassword,`` | +| | - ``config.json`` setting: ``CacheSettings`` > ``RedisPassword,`` | | String input. Leave blank if there is no | - Environment variable: ``MM_CACHESETTINGS_REDISPASSWORD`` | | password. | | +-----------------------------------------------+---------------------------------------------------------------------------+ @@ -4411,7 +4465,7 @@ Redis database +-----------------------------------------------+---------------------------------------------------------------------------+ | The database of the Redis host. | - System Config path: **N/A** | -| | - ``config.json setting``: ``CacheSettings`` > ``RedisDB,`` | +| | - ``config.json`` setting: ``CacheSettings`` > ``RedisDB,`` | | Zero-indexed number up to 15. Typically set | - Environment variable: ``MM_CACHESETTINGS_REDISDB`` | | to ``0``. Redis allows a maximum of 16 | | | databases. | | @@ -4431,7 +4485,7 @@ Disable client cache +-----------------------------------------------+--------------------------------------------------------------------------------------+ | Disables the client-side cache of Redis. | - System Config path: **N/A** | -| | - ``config.json setting``: ``CacheSettings`` > ``DisableClientCache,`` > ``false`` | +| | - ``config.json`` setting: ``CacheSettings`` > ``DisableClientCache,`` > ``false`` | | - **true**: Client-side cache of Redis is | - Environment variable: ``MM_CACHESETTINGS_REDISDB`` | | disabled. Typically used as a test option, | | | and not in production environments. | | @@ -4451,7 +4505,7 @@ Redis cache prefix +-----------------------------------------------+--------------------------------------------------------------------------------------+ | Adds a prefix to all Redis cache keys. | - System Config path: **N/A** | -| | - ``config.json setting``: ``CacheSettings`` > ``RedisCachePrefix`` | +| | - ``config.json`` setting: ``CacheSettings`` > ``RedisCachePrefix`` | | | - Environment variable: ``MM_CACHESETTINGS_REDISCACHEPREFIX`` | +-----------------------------------------------+--------------------------------------------------------------------------------------+ @@ -4473,7 +4527,7 @@ Enable webhub channel iteration +------------------------------------------------------+--------------------------------------------------------------------------------------------------+ | Control the performance of websocket broadcasting in | - System Config path: **N/A** | -| channels. | - ``config.json setting``: ``ServiceSettings`` > ``EnableWebHubChannelIteration,`` > ``false`` | +| channels. | - ``config.json`` setting: ``ServiceSettings`` > ``EnableWebHubChannelIteration,`` > ``false`` | | | - Environment variable: ``MM_SERVICESETTINGS_ENABLEWEBHUBCHANNELITERATION`` | | When enabled, improves websocket broadcasting | | | performance; however, performance may decrease | | @@ -4499,7 +4553,7 @@ Enable dedicated export filestore target +--------------------------------------------------------------------------------------+-------------------------------------------------------------------------+ | Enables the ability to specify an alternate filestore | - System Config path: **N/A** | -| target for Mattermost | - ``config.json setting``: ``FileSettings`` > ``DedicatedExportStore`` | +| target for Mattermost | - ``config.json`` setting: ``FileSettings`` > ``DedicatedExportStore`` | | :doc:`bulk exports ` and | - Environment variable: ``MM_FILESETTINGS_DEDICATEDEXPORTSTORE`` | | :doc:`compliance exports `. | | | | | diff --git a/source/administration-guide/configure/experimental-configuration-settings.rst b/source/administration-guide/configure/experimental-configuration-settings.rst index 401aadd6f73..28c9678be33 100644 --- a/source/administration-guide/configure/experimental-configuration-settings.rst +++ b/source/administration-guide/configure/experimental-configuration-settings.rst @@ -4,7 +4,7 @@ Experimental configuration settings .. include:: ../../_static/badges/allplans-cloud-selfhosted.rst :start-after: :nosearch: -Review and manage the following experimental configuration options in the System Console by selecting the **Product** |product-list| menu, selecting **System Console**, and then selecting **Experimental > Features**: +Review and manage the following :ref:`experimental ` configuration options in the System Console by selecting the **Product** |product-list| menu, selecting **System Console**, and then selecting **Experimental > Features**: - `Experimental System Console configuration settings <#experimental-system-console-configuration-settings>`__ - `Experimental Bleve configuration settings <#experimental-bleve-configuration-settings>`__ diff --git a/source/administration-guide/configure/push-notification-server-configuration-settings.rst b/source/administration-guide/configure/push-notification-server-configuration-settings.rst index f119b501ccf..bfd75005706 100644 --- a/source/administration-guide/configure/push-notification-server-configuration-settings.rst +++ b/source/administration-guide/configure/push-notification-server-configuration-settings.rst @@ -19,7 +19,7 @@ Enable push notifications +------------------------------------------------------------------+--------------------------------------------------------------------------------+ | Enable or disable Mattermost push notifications. | - System Config path: **Environment > Push Notification Server** | -| | - ``config.json setting``: ``".EmailSettings.SendPushNotifications": true",`` | +| | - ``config.json`` setting: ``EmailSettings`` > ``SendPushNotifications`` | | - **Do not send push notifications**: Mobile push notifications | - Environment variable: ``MM_EMAILSETTINGS_SENDPUSHNOTIFICATIONS`` | | are disabled. | | | - **Use HPNS connection with uptime SLA to send notifications | | @@ -105,7 +105,7 @@ Push notification server location +-----------------------------------------------------------------+--------------------------------------------------------------------------------+ | The physical location of the Mattermost Hosted Push | - System Config path: **Environment > Push Notification Server** | -| Notification Service (HPNS) server. | - ``config.json setting``: ``".EmailSettings.PushNotificationServer",`` | +| Notification Service (HPNS) server. | - ``config.json`` setting: ``EmailSettings`` > ``PushNotificationServer`` | | | - Environment variable: ``MM_EMAILSETTINGS_PUSHNOTIFICATIONSERVER`` | | Select from **US** **(Default)** or **Germany** to | | | automatically populate the **Push Notification Server** | | @@ -122,22 +122,22 @@ Push notification server location Maximum notifications per channel ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -+-----------------------------------------------------------------+--------------------------------------------------------------------------------------+ -| The maximum total number of users in a channel before @all, | - System Config path: **Environment > Push Notification Server** | -| @here, and @channel no longer send desktop, email, or mobile | - ``config.json setting``: ``".TeamSettings.MaxNotificationsPerChannel: 1000",`` | -| push notifications to maximize performance. | - Environment variable: ``MM_EMAILSETTINGS_MAXNOTIFICATIONSPERCHANNEL`` | -| | | -| Numerical input. Default is **1000**. | | -+-----------------------------------------------------------------+--------------------------------------------------------------------------------------+ ++-----------------------------------------------------------------+---------------------------------------------------------------------------------------------+ +| The maximum total number of users in a channel before @all, | - System Config path: **Environment > Push Notification Server** | +| @here, and @channel no longer send desktop, email, or mobile | - ``config.json`` setting: ``TeamSettings`` > ``MaxNotificationsPerChannel`` > ``1000`` | +| push notifications to maximize performance. | - Environment variable: ``MM_EMAILSETTINGS_MAXNOTIFICATIONSPERCHANNEL`` | +| | | +| Numerical input. Default is **1000**. | | ++-----------------------------------------------------------------+---------------------------------------------------------------------------------------------+ .. note:: - We recommend increasing this value a little at a time, monitoring system health by tracking :doc:`performance monitoring metrics `, and only increasing this value if large channels have restricted permissions controlling who can post to the channel, such as a :ref:`read-only channel `. - Reducing this configuration setting value to **10** in larger deployments may improve server performance in the following areas: - - Reduced Load on Notification System: Each notification generates a certain amount of computational and network load. By limiting the number of notifications per channel, the system processes fewer notifications, thereby reducing the load on servers. - - Database Efficiency: Notifications are typically stored in a database. Fewer notifications mean less frequent database writes and reads, leading to quicker database operations and reduced latency. - - Minimized Client Processing: Users' clients (e.g., desktop and mobile apps) have to fetch and process notifications. With fewer notifications, clients can operate more efficiently, reducing memory and CPU usage on users' devices. - - Improved User Experience: An overload of notifications can lead to performance lags and a cluttered experience for users. Limiting the number ensures that users receive only the most important notifications, which can enhance usability and response times. - - Network Bandwidth: High numbers of notifications can consume a lot of bandwidth, particularly if they are being sent to many users. Fewer notifications can lead to lower overall network usage and potentially faster delivery of critical messages. - - Server Load Balancing: By reducing the number of notifications, the workload can be more evenly distributed across the servers, leading to better load balancing and preventing any single server from becoming a bottleneck. + - **Reduced Load on Notification System**: Each notification generates a certain amount of computational and network load. By limiting the number of notifications per channel, the system processes fewer notifications, thereby reducing the load on servers. + - **Database Efficiency**: Notifications are typically stored in a database. Fewer notifications mean less frequent database writes and reads, leading to quicker database operations and reduced latency. + - **Minimized Client Processing**: Users' clients (e.g., desktop and mobile apps) have to fetch and process notifications. With fewer notifications, clients can operate more efficiently, reducing memory and CPU usage on users' devices. + - **Improved User Experience**: An overload of notifications can lead to performance lags and a cluttered experience for users. Limiting the number ensures that users receive only the most important notifications, which can enhance usability and response times. + - **Network Bandwidth**: High numbers of notifications can consume a lot of bandwidth, particularly if they are being sent to many users. Fewer notifications can lead to lower overall network usage and potentially faster delivery of critical messages. + - **Server Load Balancing**: By reducing the number of notifications, the workload can be more evenly distributed across the servers, leading to better load balancing and preventing any single server from becoming a bottleneck. diff --git a/source/administration-guide/configure/rate-limiting-configuration-settings.rst b/source/administration-guide/configure/rate-limiting-configuration-settings.rst index 5ef68aa9b80..7206188787b 100644 --- a/source/administration-guide/configure/rate-limiting-configuration-settings.rst +++ b/source/administration-guide/configure/rate-limiting-configuration-settings.rst @@ -21,15 +21,15 @@ Configure rate limiting settings by going to **System Console > Environment > Ra Enable rate limiting ~~~~~~~~~~~~~~~~~~~~ -+----------------------------------------------------------------+--------------------------------------------------------------------------+ -| Enable or disable rate limiting to throttle APIs to a | - System Config path: **Environment > Rate Limiting** | -| specified number of requests per second. | - ``config.json`` setting: ``".RateLimitSettings.Enable: false”,`` | -| | - Environment variable: ``MM_RATELIMITSETTINGS_ENABLE`` | -| - **true**: APIs are throttled at the rate specified by the | | -| `Maximum queries per second <#maximum-queries-per-second>`__ | | -| configuration setting. | | -| - **false**: **(Default)** API access isn’t throttled. | | -+----------------------------------------------------------------+--------------------------------------------------------------------------+ ++----------------------------------------------------------------+----------------------------------------------------------------------------+ +| Enable or disable rate limiting to throttle APIs to a | - System Config path: **Environment > Rate Limiting** | +| specified number of requests per second. | - ``config.json`` setting: ``RateLimitSettings`` > ``Enable`` > ``false`` | +| | - Environment variable: ``MM_RATELIMITSETTINGS_ENABLE`` | +| - **true**: APIs are throttled at the rate specified by the | | +| `Maximum queries per second <#maximum-queries-per-second>`__ | | +| configuration setting. | | +| - **false**: **(Default)** API access isn’t throttled. | | ++----------------------------------------------------------------+----------------------------------------------------------------------------+ .. config:setting:: maximum-queries-per-second :displayname: Maximum queries per second (Rate Limiting) @@ -43,13 +43,12 @@ Maximum queries per second +---------------------------------------------------------------+--------------------------------------------------------------------------+ | Throttle the API at this number of requests per second when | - System Config path: **Environment > Rate Limiting** | -| `rate limiting <#enable-rate-limiting>`__ is enabled. | - ``config.json`` setting: ``".RateLimitSettings.PerSec: 10,`` | +| `rate limiting <#enable-rate-limiting>`__ is enabled. | - ``config.json`` setting: ``RateLimitSettings`` > ``PerSec`` > ``10`` | | | - Environment variable: ``MM_RATELIMITSETTINGS_PERSEC`` | | Numerical input. Default is **10**. | | | | | | Increase this value to accept more requests each second, and | | | decrease this value to allow fewer requests. | | -| | | +---------------------------------------------------------------+--------------------------------------------------------------------------+ .. config:setting:: maximum-burst-size @@ -63,16 +62,16 @@ Maximum queries per second Maximum burst size ~~~~~~~~~~~~~~~~~~ -+-----------------------------------------------------------------+--------------------------------------------------------------------------+ -| The maximum number of requests allowed beyond the per second | - System Config path: **Environment > Rate Limiting** | -| query limit when `rate limiting <#enable-rate-limiting>`__ | - ``config.json`` setting: ``".RateLimitSettings.MaxBurst: 100,`` | -| is enabled. | - Environment variable: ``MM_RATELIMITSETTINGS_MAXBURST`` | -| | | -| Numerical input. Default is **100**. | | -| | | -| Increase this value to allow for more concurrent requests to be | | -| handled, and decrease this value to limit this capacity. | | -+-----------------------------------------------------------------+--------------------------------------------------------------------------+ ++-----------------------------------------------------------------+-----------------------------------------------------------------------------+ +| The maximum number of requests allowed beyond the per second | - System Config path: **Environment > Rate Limiting** | +| query limit when `rate limiting <#enable-rate-limiting>`__ | - ``config.json`` setting: ``RateLimitSettings`` > ``MaxBurst`` > ``100`` | +| is enabled. | - Environment variable: ``MM_RATELIMITSETTINGS_MAXBURST`` | +| | | +| Numerical input. Default is **100**. | | +| | | +| Increase this value to allow for more concurrent requests to be | | +| handled, and decrease this value to limit this capacity. | | ++-----------------------------------------------------------------+-----------------------------------------------------------------------------+ .. config:setting:: memory-store-size :displayname: Memory store size (Rate Limiting) @@ -84,19 +83,19 @@ Maximum burst size Memory store size ~~~~~~~~~~~~~~~~~ -+-----------------------------------------------------------------+----------------------------------------------------------------------------+ -| The maximum number of user sessions connected to the system as | - System Config path: **Environment > Rate Limiting** | -| determined by vary rate limit settings when | - ``config.json`` setting: ``".RateLimitSettings.MemoryStoreSize: 10000,`` | -| `rate limiting <#enable-rate-limiting>`__ is enabled. | - Environment variable: ``MM_RATELIMITSETTINGS_MEMORYSTORESIZE`` | -| | | -| Numerical input. Default is **10000**. Typically set to the | | -| number of users in the system. | | -| | | -| We recommend setting this value to the expected number of | | -| users. A higher value may result in underutilized resources, | | -| and a lower value may result in user sessions/tokens expiring | | -| too frequently. | | -+-----------------------------------------------------------------+----------------------------------------------------------------------------+ ++-----------------------------------------------------------------+------------------------------------------------------------------------------------+ +| The maximum number of user sessions connected to the system as | - System Config path: **Environment > Rate Limiting** | +| determined by vary rate limit settings when | - ``config.json`` setting: ``RateLimitSettings`` > ``MemoryStoreSize`` > ``10000`` | +| `rate limiting <#enable-rate-limiting>`__ is enabled. | - Environment variable: ``MM_RATELIMITSETTINGS_MEMORYSTORESIZE`` | +| | | +| Numerical input. Default is **10000**. Typically set to the | | +| number of users in the system. | | +| | | +| We recommend setting this value to the expected number of | | +| users. A higher value may result in underutilized resources, | | +| and a lower value may result in user sessions/tokens expiring | | +| too frequently. | | ++-----------------------------------------------------------------+------------------------------------------------------------------------------------+ .. config:setting:: vary-rate-limit-by-remote-address :displayname: Vary rate limit by remote address (Rate Limiting) @@ -111,14 +110,14 @@ Memory store size Vary rate limit by remote address ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -+-----------------------------------------------------------------+----------------------------------------------------------------------------+ -| Configure Mattermost to rate limit API access by IP address | - System Config path: **Environment > Rate Limiting** | -| when `rate limiting <#enable-rate-limiting>`__ is enabled. | - ``config.json`` setting: ``".RateLimitSettings.VaryByRemoteAddr: true,`` | -| | - Environment variable: ``MM_RATELIMITSETTINGS_VARYBYREMOTEADDR`` | -| - **true**: **(Default)** Rate limit API access by IP address. | | -| Recommended when using a proxy. | | -| - **false**: Rate limiting does not vary by IP address. | | -+-----------------------------------------------------------------+----------------------------------------------------------------------------+ ++-----------------------------------------------------------------+------------------------------------------------------------------------------------+ +| Configure Mattermost to rate limit API access by IP address | - System Config path: **Environment > Rate Limiting** | +| when `rate limiting <#enable-rate-limiting>`__ is enabled. | - ``config.json`` setting: ``RateLimitSettings`` > ``VaryByRemoteAddr`` > ``true`` | +| | - Environment variable: ``MM_RATELIMITSETTINGS_VARYBYREMOTEADDR`` | +| - **true**: **(Default)** Rate limit API access by IP address. | | +| Recommended when using a proxy. | | +| - **false**: Rate limiting does not vary by IP address. | | ++-----------------------------------------------------------------+------------------------------------------------------------------------------------+ .. config:setting:: vary-rate-limit-by-user :displayname: Vary rate limit by user (Rate Limiting) @@ -132,16 +131,16 @@ Vary rate limit by remote address Vary rate limit by user ~~~~~~~~~~~~~~~~~~~~~~~ -+-----------------------------------------------------------------+----------------------------------------------------------------------------+ -| Configure Mattermost to rate limit API access by authentication | - System Config path: **Environment > Rate Limiting** | -| token or not when `rate limiting <#enable-rate-limiting>`__ | - ``config.json`` setting: ``".RateLimitSettings.VaryByUser: false,`` | -| is enabled. | - Environment variable: ``MM_RATELIMITSETTINGS_VARYBYUSER`` | -| | | -| - **true**: Rate limit API access by user authentication token. | | -| Recommended when using a proxy. | | -| - **false**: **(Default)** Rate limiting does not vary by user | | -| authentication token. | | -+-----------------------------------------------------------------+----------------------------------------------------------------------------+ ++-----------------------------------------------------------------+-------------------------------------------------------------------------------+ +| Configure Mattermost to rate limit API access by authentication | - System Config path: **Environment > Rate Limiting** | +| token or not when `rate limiting <#enable-rate-limiting>`__ | - ``config.json`` setting: ``RateLimitSettings`` > ``VaryByUser`` > ``false`` | +| is enabled. | - Environment variable: ``MM_RATELIMITSETTINGS_VARYBYUSER`` | +| | | +| - **true**: Rate limit API access by user authentication token. | | +| Recommended when using a proxy. | | +| - **false**: **(Default)** Rate limiting does not vary by user | | +| authentication token. | | ++-----------------------------------------------------------------+-------------------------------------------------------------------------------+ .. config:setting:: vary-rate-limit-by-http-header :displayname: Vary rate limit by HTTP header (Rate Limiting) @@ -153,11 +152,11 @@ Vary rate limit by user Vary rate limit by HTTP header ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -+-----------------------------------------------------------------+----------------------------------------------------------------------------+ -| Configure Mattermost to vary rate limiting API access | - System Config path: **Environment > Rate Limiting** | -| by the HTTP header field specified. Recommended when you’re | - ``config.json`` setting: ``".RateLimitSettings.VaryByHeader: "",`` | -| using a proxy. | - Environment variable: ``MM_RATELIMITSETTINGS_VARYBYHEADER`` | -| | | -| - When configuring NGINX, set this to **X-Real-IP**. | | -| - When configuring AmazonELB, set this to **X-Forwarded-For**. | | -+-----------------------------------------------------------------+----------------------------------------------------------------------------+ ++-----------------------------------------------------------------+-------------------------------------------------------------------------------+ +| Configure Mattermost to vary rate limiting API access | - System Config path: **Environment > Rate Limiting** | +| by the HTTP header field specified. Recommended when you’re | - ``config.json`` setting: ``RateLimitSettings`` > ``VaryByHeader`` > ``""`` | +| using a proxy. | - Environment variable: ``MM_RATELIMITSETTINGS_VARYBYHEADER`` | +| | | +| - When configuring NGINX, set this to **X-Real-IP**. | | +| - When configuring AmazonELB, set this to **X-Forwarded-For**. | | ++-----------------------------------------------------------------+-------------------------------------------------------------------------------+ diff --git a/source/administration-guide/onboard/sso-saml-technical.rst b/source/administration-guide/onboard/sso-saml-technical.rst index 228a890b8b0..cf367cc45e9 100644 --- a/source/administration-guide/onboard/sso-saml-technical.rst +++ b/source/administration-guide/onboard/sso-saml-technical.rst @@ -16,9 +16,9 @@ Mattermost supports using a single metadata URL to retrieve configuration inform Using this URL populates the SAML SSO URL and the Identity Provider Issuer URL fields in the configuration process automatically and the Identity Provider Public Certificate is also downloaded from the server and set locally. -This is currently supported for Okta and Microsoft ADFS server 2012 and 2016. OneLogin support will be added in a future release. +This is currently supported for Okta and Microsoft ADFS server 2012 and 2016. -For detailed steps, view the :doc:`Configure SAML with Okta `, :doc:`Configure SAML with Microsoft ADFS for Windows Server 2012 `, and :doc:`Configure SAML with Microsoft ADFS using Microsoft Windows Server 2016 ` documentation. See the encryption options documentation for details on what :ref:`encryption methods ` Mattermost supports for SAML. +For detailed steps, view the :doc:`Configure SAML with Okta `, :doc:`Configure SAML with Microsoft ADFS for Windows Server 2012 `, and :doc:`Configure SAML with Microsoft ADFS using Microsoft Windows Server 2016 ` documentation. See the encryption options documentation for details on what :ref:`encryption methods ` Mattermost supports for SAML, including AES-192-GCM and AES-256-GCM encryption support introduced in v10.9. SAML providers -------------- diff --git a/source/administration-guide/scale/high-availability-cluster-based-deployment.rst b/source/administration-guide/scale/high-availability-cluster-based-deployment.rst index 7fc618047f1..d0ca2db3c7c 100644 --- a/source/administration-guide/scale/high-availability-cluster-based-deployment.rst +++ b/source/administration-guide/scale/high-availability-cluster-based-deployment.rst @@ -314,8 +314,8 @@ Here's an example ``SqlSettings`` block for one master and two read replicas: "DataSource": "master_user:master_password@tcp(master.server)/mattermost?charset=utf8mb4,utf8\u0026readTimeout=30s\u0026writeTimeout=30s", "DataSourceReplicas": ["slave_user:slave_password@tcp(replica1.server)/mattermost?charset=utf8mb4,utf8\u0026readTimeout=30s\u0026writeTimeout=30s","slave_user:slave_password@tcp(replica2.server)/mattermost?charset=utf8mb4,utf8\u0026readTimeout=30s\u0026writeTimeout=30s"], "DataSourceSearchReplicas": [], - "MaxIdleConns": 20, - "MaxOpenConns": 300, + "MaxIdleConns": 50, + "MaxOpenConns": 100, "Trace": false, "AtRestEncryptKey": "", "QueryTimeout": 30 diff --git a/source/administration-guide/upgrade/prepare-to-upgrade-mattermost.rst b/source/administration-guide/upgrade/prepare-to-upgrade-mattermost.rst index 7c2baab09ae..fe0bbf53189 100644 --- a/source/administration-guide/upgrade/prepare-to-upgrade-mattermost.rst +++ b/source/administration-guide/upgrade/prepare-to-upgrade-mattermost.rst @@ -58,8 +58,7 @@ We strongly recommend that you: - Upgrade your instance of Mattermost to the latest :doc:`Extended Support Release (ESR) ` first before attempting to run the Mattermost v6.0 upgrade. .. important:: - - Support for Mattermost Server v9.11 :doc:`Extended Support Release ` is coming to the end of its life cycle on May 15, 2025. Upgrading to Mattermost Server v10.5 Extended Support Release or later is recommended. Upgrading from a previous Extended Support Release to the latest Extended Support Release is supported. Review the :doc:`important-upgrade-notes` for all intermediate versions in between to ensure you’re aware of the possible migrations that could affect your upgrade. + Support for Mattermost Server v10.5 :doc:`Extended Support Release ` is coming to the end of its life cycle on November 15, 2025. Upgrading to Mattermost Server v10.11 Extended Support Release or later is required. Upgrading from the previous Extended Support Release to the latest Extended Support Release is supported. Review the :doc:`important-upgrade-notes` for all intermediate versions in between to ensure you’re aware of the possible migrations that could affect your upgrade. v6.0 database schema migrations ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/source/deployment-guide/desktop/desktop-msi-installer-and-group-policy-install.rst b/source/deployment-guide/desktop/desktop-msi-installer-and-group-policy-install.rst index 27bbc75bccc..c509e6e008d 100644 --- a/source/deployment-guide/desktop/desktop-msi-installer-and-group-policy-install.rst +++ b/source/deployment-guide/desktop/desktop-msi-installer-and-group-policy-install.rst @@ -1,7 +1,7 @@ Desktop MSI installer and group policy guide ============================================= -This page provides guidance on installing the desktop app MSI and use Group Policies in Windows for Mattermost Enterprise or Professional. The MSI installer package can be downloaded `here `_. +This page provides guidance on installing the desktop app MSI and use Group Policies in Windows for Mattermost Enterprise or Professional. The MSI installer package can be downloaded `here `_. .. tip:: @@ -20,9 +20,9 @@ Download group policy and MSI installer files .. image:: ../../images/desktop/msi_gpo/msi_gpo_installation_test_00002.png :alt: Go to the mattermost/desktop repository on GitHub. -3. Navigate to the release page for `version v5.13.0 `__ and download the appropriate installer for your version of Windows (32-bit vs. 64-bit). +3. Navigate to the release page for `version v5.13.1 `__ and download the appropriate installer for your version of Windows (32-bit vs. 64-bit). -4. Download the `source.zip `__ file as well to extract group policy files. +4. Download the `source.zip `__ file as well to extract group policy files. .. image:: ../../images/desktop/msi_gpo/msi_gpo_installation_test_00003.png :alt: In the mattermost/desktop repository on GitHub, go to the release page for the latest desktop release, then download the installer for your version of Windows. Download the source.zip file as well to extract group policy files. @@ -43,12 +43,12 @@ The following group policies are available supporting a state option of Not Conf | Automatic Updates | If disabled, automatic desktop app updates are disabled. | v5.1 or later | ``EnableAutoUpdates`` | +--------------------------+------------------------------------------------------------+----------------------+----------------------------+ -1. Browse to the folder the above files were downloaded to and unzip the ``desktop-5.13.0.zip`` file in place. +1. Browse to the folder the above files were downloaded to and unzip the ``desktop-5.13.1.zip`` file in place. .. image:: ../../images/desktop/msi_gpo/msi_gpo_installation_test_00004.png :alt: Go to the install download directory on your machine and unzip the ZIP file. -2. Navigate to the unzipped ``desktop-5.13.0\resources\windows\gpo`` folder and copy the contents. +2. Navigate to the unzipped ``desktop-5.13.1\resources\windows\gpo`` folder and copy the contents. .. image:: ../../images/desktop/msi_gpo/msi_gpo_installation_test_00005.png :alt: Go to the \resources\windows\gpo directory and copy its contents. @@ -167,9 +167,9 @@ Perform a silent installation of the MSI by running the following command: Ensure the desktop app is closed before proceeding with a silent installation. Because it's a silent installation, Mattermost won't prompt you to close the desktop app. -**Command Prompt:** ``msiexec /i mattermost-desktop-v5.13.0-x64.msi /qn`` +**Command Prompt:** ``msiexec /i mattermost-desktop-v5.13.1-x64.msi /qn`` -**PowerShell:** ``Start-Process -FilePath "$env:systemroot\system32\msiexec.exe" -ArgumentList '/i mattermost-desktop-v5.13.0-x64.msi /qn'`` +**PowerShell:** ``Start-Process -FilePath "$env:systemroot\system32\msiexec.exe" -ArgumentList '/i mattermost-desktop-v5.13.1-x64.msi /qn'`` .. note:: - You'll need to update the version details in this command as new versions of the Mattermost desktop app are released. @@ -182,13 +182,13 @@ Install for all users Use the ``ALLUSERS`` parameter to install the MSI for all users: -**Command Prompt:** ``msiexec /i mattermost-desktop-v5.13.0-x64.msi ALLUSERS=1`` +**Command Prompt:** ``msiexec /i mattermost-desktop-v5.13.1-x64.msi ALLUSERS=1`` -**PowerShell:** ``Start-Process -FilePath "$env:systemroot\system32\msiexec.exe" -ArgumentList '/i mattermost-desktop-v5.13.0-x64.msi ALLUSERS=1'`` +**PowerShell:** ``Start-Process -FilePath "$env:systemroot\system32\msiexec.exe" -ArgumentList '/i mattermost-desktop-v5.13.1-x64.msi ALLUSERS=1'`` .. note:: - Installing the MSI for all users disables automatic updates for the desktop app on Windows. - - To disable automatic updates on a per-user basis, use the ``DISABLEAUTOUPDATE`` parameter: ``msiexec /i mattermost-desktop-v5.11.2-x64.msi DISABLEAUTOUPDATE=1`` + - To disable automatic updates on a per-user basis, use the ``DISABLEAUTOUPDATE`` parameter: ``msiexec /i mattermost-desktop-v5.13.1-x64.msi DISABLEAUTOUPDATE=1`` Specify an install directory ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -196,8 +196,8 @@ Specify an install directory Use the ``APPLICATIONFOLDER`` parameter to specify an installation directory for the MSI installation: -**Command Prompt:** ``msiexec /i mattermost-desktop-v5.13.0-x64.msi APPLICATIONFOLDER=""`` +**Command Prompt:** ``msiexec /i mattermost-desktop-v5.13.1-x64.msi APPLICATIONFOLDER=""`` -**PowerShell:** ``Start-Process -FilePath "$env:systemroot\system32\msiexec.exe" -ArgumentList '/i mattermost-desktop-v5.13.0-x64.msi APPLICATIONFOLDER=""'`` +**PowerShell:** ``Start-Process -FilePath "$env:systemroot\system32\msiexec.exe" -ArgumentList '/i mattermost-desktop-v5.13.1-x64.msi APPLICATIONFOLDER=""'`` Change this command as new versions of the Mattermost Desktop App are released. diff --git a/source/deployment-guide/desktop/linux-desktop-install.rst b/source/deployment-guide/desktop/linux-desktop-install.rst index e391b48c9b5..2dd7cf6c772 100644 --- a/source/deployment-guide/desktop/linux-desktop-install.rst +++ b/source/deployment-guide/desktop/linux-desktop-install.rst @@ -54,13 +54,13 @@ This page describes how to install the Mattermost desktop app on Linux. Install the Mattermost desktop app ---------------------------------- - 1. Download the latest version of the Mattermost desktop app for 64-bit systems: `mattermost-desktop-5.13.0-linux-x86_64.rpm `_ + 1. Download the latest version of the Mattermost desktop app for 64-bit systems: `mattermost-desktop-5.13.1-linux-x86_64.rpm `_ 2. At the command line, execute the following command: .. code-block:: sh - sudo rpm -i mattermost-desktop-5.13.0-linux-x86_64.rpm + sudo rpm -i mattermost-desktop-5.13.1-linux-x86_64.rpm 3. Run Mattermost as a desktop app. @@ -68,7 +68,7 @@ This page describes how to install the Mattermost desktop app on Linux. .. code-block:: sh - sudo rpm -u mattermost-desktop-5.13.0-linux-x86_64.rpm + sudo rpm -u mattermost-desktop-5.13.1-linux-x86_64.rpm .. tip:: You can review the current version of your desktop app by selecting the **More** |more-icon-vertical| icon located in the top left corner of the desktop app, then selecting **Help > Version...**. @@ -83,7 +83,7 @@ This page describes how to install the Mattermost desktop app on Linux. Install the Desktop App's compressed tarball --------------------------------------------- - 1. Download the latest version of the Mattermost desktop app for 64-bit systems: `mattermost-desktop-5.13.0-linux-x64.tar.gz `_ + 1. Download the latest version of the Mattermost desktop app for 64-bit systems: `mattermost-desktop-5.13.1-linux-x64.tar.gz `_ 2. Extract the archive to a convenient location, then give ``chrome-sandbox`` in the extracted directory the required ownership and permissions: ``sudo chown root:root chrome-sandbox && sudo chmod 4755 chrome-sandbox`` diff --git a/source/deployment-guide/server/kubernetes/deploy-k8s-aks.rst b/source/deployment-guide/server/kubernetes/deploy-k8s-aks.rst index 20ebe8ed344..b5ed4eb296d 100644 --- a/source/deployment-guide/server/kubernetes/deploy-k8s-aks.rst +++ b/source/deployment-guide/server/kubernetes/deploy-k8s-aks.rst @@ -30,7 +30,7 @@ Step 1: Deploy Mattermost 1. Deploy Mattermost from the `Azure Marketplace Container Offer `_ and select **Get it now**. - - Alternatively, you can go to the ``Extensions + Applications`` section of your AKS cluster and install the Mattermost offering from there. Visit the `Microsoft cluster extensions documentation `_ to learn more. + Alternatively, you can go to the ``Extensions + Applications`` section of your AKS cluster and install the Mattermost offering from there. Visit the `Microsoft cluster extensions documentation `_ to learn more. 2. Choose the **Resource Group** and the **Region** of your installed AKS and PostgreSQL database. @@ -55,12 +55,12 @@ Step 1: Deploy Mattermost 6. Configure Mattermost installation hostname and Ingress details. The AGIC add-on is used in the following example to show the ingress annotations required. - a. You can use any pre-installed Ingress Controller in your cluster as long as it supports Kubernetes Ingress and TLS termination. + You can use any pre-installed Ingress Controller in your cluster as long as it supports Kubernetes Ingress and TLS termination. - .. code-block:: yaml + .. code-block:: yaml - kubernetes.io/ingress.class: azure/application-gateway - appgw.ingress.kubernetes.io/ssl-redirect: "true" + kubernetes.io/ingress.class: azure/application-gateway + appgw.ingress.kubernetes.io/ssl-redirect: "true" 7. Additionally, we recommend considering: @@ -73,11 +73,11 @@ Step 1: Deploy Mattermost 8. Ensure that everything is running. You should be able to check the installed plugin from the **AKS Extensions + Applications** page under the **Settings** menu. - a. When the deployment is complete, obtain the hostname or IP address of your Mattermost deployment using the following command: + When the deployment is complete, obtain the hostname or IP address of your Mattermost deployment using the following command: - .. code-block:: sh + .. code-block:: sh - kubectl -n mattermost-operator get ingress + kubectl -n mattermost-operator get ingress 9. Use your IP address from the ``ADDRESS`` column, and create a DNS record in your domain registration service. @@ -101,6 +101,13 @@ Step 2: Upgrade Mattermost via your AKS cluster 4. Select **Save** and wait for the upgrade. +Looking for a sovereign deployment on Azure Local? +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +For organizations requiring on-premises deployments with data sovereignty, **Azure Local** (formerly Azure Stack HCI) provides a hybrid cloud platform that enables you to run Mattermost on-premises while maintaining integration with Microsoft Teams and M365. + +We recommend engaging **Mattermost Professional Services** for Azure Local deployments to ensure optimal configuration and compliance with your security requirements. `Talk to an Expert `_ to discuss your Azure Local deployment needs. + .. important:: - You are responsible for Azure costs associated with any infrastructure you spin up to host a Mattermost server, and Azure credits cannot be applied towards the purchase of a Mattermost license. + You are responsible for Azure costs associated with any infrastructure you spin up to host a Mattermost server, and Azure credits cannot be applied towards the purchase of a Mattermost license. \ No newline at end of file diff --git a/source/end-user-guide/collaborate/access-your-workspace.rst b/source/end-user-guide/collaborate/access-your-workspace.rst index 987c2155409..827ffffc5d4 100644 --- a/source/end-user-guide/collaborate/access-your-workspace.rst +++ b/source/end-user-guide/collaborate/access-your-workspace.rst @@ -1,7 +1,7 @@ Access your workspace ===================== -Access your Mattermost instance with your credentials using a web browser, the desktop app, or the mobile app for iOS or Android. Depending on how Mattermost is configured, you'll log in using your email address, username, or single sign-on (SSO) username, and your password. +Access your Mattermost instance with your credentials using a web browser, the desktop app, or the mobile app for iOS or Android. Depending on how Mattermost is configured, you'll log in using your email address, username, or single sign-on (SSO) username, and your password. See the :doc:`Client availability ` documentation to learn which features are available on different Mattermost clients. .. tip:: @@ -15,6 +15,7 @@ Access your Mattermost instance with your credentials using a web browser, the d Install the desktop app Install the iOS mobile app Install the Android mobile app + Client availability Log out of Mattermost .. tab:: Web/Desktop diff --git a/source/product-overview/client-availability.rst b/source/end-user-guide/collaborate/client-availability.rst similarity index 100% rename from source/product-overview/client-availability.rst rename to source/end-user-guide/collaborate/client-availability.rst diff --git a/source/product-overview/common-esr-support-upgrade.md b/source/product-overview/common-esr-support-upgrade.md index 8115e9a04c8..8bae1008636 100644 --- a/source/product-overview/common-esr-support-upgrade.md +++ b/source/product-overview/common-esr-support-upgrade.md @@ -1,6 +1,6 @@ - Support for Mattermost Server v10.5 [Extended Support Release](https://docs.mattermost.com/product-overview/release-policy.html#extended-support-releases) is coming to the end of its life cycle on November 15, 2025. Upgrading to Mattermost Server v10.11 or later is recommended. -- Upgrading from ESR-to-ESR (``major`` -> ``major_next``) is fully supported and tested. However, upgrading from ESR-to-ESR (``major`` to ``major+2``) is supported, but not tested. If you plan to upgrade across multiple releases, we strongly recommend upgrading from an ESR to another ESR. For example, if you're upgrading from the v8.1 ESR, upgrade to the [v9.5 ESR](https://docs.mattermost.com/about/mattermost-v9-changelog.html#release-v9-5-extended-support-release) or the [v9.11 ESR](https://docs.mattermost.com/about/mattermost-v9-changelog.html#release-v9-11-extended-support-release). +- Upgrading from one Extended Support Release (ESR) to the next ESR (``major`` -> ``major_next``) is fully supported and tested. However, upgrading across multiple ESR versions (``major`` to ``major+2``) is supported, but not tested. If you plan to skip versions, we strongly recommend upgrading only between ESR releases. For example, if you're upgrading from v8.1 ESR, upgrade to the v9.5 ESR or the v9.11 ESR before attempting to upgrade to the [v10.5 ESR](https://docs.mattermost.com/product-overview/mattermost-v10-changelog.html#release-v10-5-extended-support-release) or the [v10.11 ESR](https://docs.mattermost.com/product-overview/mattermost-v10-changelog.html#release-v10-11-extended-support-release). - See the [Important Upgrade Notes](https://docs.mattermost.com/upgrade/important-upgrade-notes.html) documentation for details on upgrading to a newer release. - See the [changelog in progress](https://bit.ly/2nK3cVf) for details about the upcoming release. diff --git a/source/product-overview/deprecated-features.rst b/source/product-overview/deprecated-features.rst index 418d1ec1097..ce7453088a1 100644 --- a/source/product-overview/deprecated-features.rst +++ b/source/product-overview/deprecated-features.rst @@ -6,24 +6,29 @@ This page describes features that are removed from support for Mattermost, or wi Removed features in upcoming versions ------------------------------------- +Mattermost Server v11.1.0 (November 2025) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +- The version of React used by the Mattermost web app will be updated from React 17 to React 18. See more details in `this forum post `__. + Mattermost Server v11.0.0 (October 2025) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - GitLab SSO will be deprecated from Team Edition. Deployments using GitLab SSO can remain on v10.11 ESR (with 12 months of security updates) while transitioning to our new free offering Mattermost Entry, or exploring commercial/nonprofit options. See more details in `this forum post `__. - The ``TeamSettings.ExperimentalViewArchivedChannels`` setting will be deprecated. Archived channels will always be accessible, subject to normal channel membership. The server will fail to start if this setting is set to ``false``; to deny access to archived channels, mark them as private and remove affected channel members. See more details in `this forum post `__. -- Playbooks will stop working for Team Edition. Professional, Enterprise, and Enterprise Advanced plans will automatically be upgraded to Playbooks v2 with no expected downtime. +- Playbooks will stop working for Team Edition. Entry, Professional, Enterprise, and Enterprise Advanced plans will automatically be upgraded to Playbooks v2 with no expected downtime. See more details in `this forum post `__. - Experimental Bleve Search functionality will be retired. See more details in `this forum post `__. - Support for MySQL will be ended. See more details in `this forum post `__. - The ``ExperimentalStrictCSRFEnforcement`` setting will be renamed to ``StrictCSRFEnforcement`` and the default value will be changed to ``true`` for new installations. See more details in `this forum post `__. - The ``registerPostDropdownMenuComponent`` hook in the web app’s plugin API will be removed in favour of ``registerPostDropdownMenuAction``. See more details in `this forum post `__. - The web app will no longer expose the `Styled Components `__ dependency for use by web app plugins. See more details in `this forum post `__. -- The version of React used by the Mattermost web app will be updated from React 17 to React 18. See more details in `this forum post `__. - Omnibus support will be deprecated. The last ``mattermost-omnibus`` release will be v10.12. See more details in `this forum post `__. - Deprecated ``include_removed_members`` option in ``api/v4/ldap/sync`` will be removed. Admins can use the LDAP setting ``ReAddRemovedMembers``. - All telemetry support will be removed from Mattermost. The system will no longer collect or send telemetry data to external services. - Format query parameter requirement in ``/api/v4/config/client`` endpoint will be deprecated. - Deprecated mmctl commands and flags will be removed. - Experimental certificate-based authentication feature will be removed. ``ExperimentalSettings.ClientSideCertEnable`` must be ``false`` to start the server. +- The bcrypt password hashing method will be deprecated in favor of PBKDF2. Downgrading the server from v11 to a previous version will leave users whose password was migrated unable to log in. Admins will need to manually reset user passwords until the server is upgraded back to v11. - Separate notification log file will be deprecated. If admins want to continue using a separate log file for notification logs, they can use the ``AdvancedLoggingJSON`` configuration. An example configuration to use is: .. code-block:: sh diff --git a/source/product-overview/desktop-app-changelog.md b/source/product-overview/desktop-app-changelog.md index 6f9ec8a65d4..ace3978bffd 100644 --- a/source/product-overview/desktop-app-changelog.md +++ b/source/product-overview/desktop-app-changelog.md @@ -12,9 +12,16 @@ This changelog summarizes updates to Mattermost desktop app releases for [Matter (release-v5-13)= ## Release v5.13 (Extended Support Release) -**Release Day: 2025-08-15** +- **v5.13.1, released 2025-09-10** -**Download Binaries:** [Mattermost Desktop on GitHub](https://github.com/mattermost/desktop/releases/latest) + - Mattermost Desktop App v5.13.1 contains low to medium severity level security fixes. Upgrading 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.com/security-vulnerability-report/). + - Upgraded to Electron 37.4.0. + +- **v5.13.0, released 2025-08-15** + + - Original v5.13.0 release + +**Download Binaries:** [Mattermost Desktop on GitHub](https://github.com/mattermost/desktop/releases/v5.13.1) ### Compatibility diff --git a/source/product-overview/faq-business.rst b/source/product-overview/faq-business.rst deleted file mode 100644 index e5d1ae2314d..00000000000 --- a/source/product-overview/faq-business.rst +++ /dev/null @@ -1,82 +0,0 @@ -Business -========= - -How do I fork Mattermost? -------------------------- - -If you wish to create a forked version of the Mattermost source code, you must comply with the applicable licenses under which the source code is made available. Historically, this was made clear via this link: https://docs.mattermost.com/about/faq-business.html#copyright-and-licensing-of-mattermost-open-source-code. - -For example, the Mattermost server source code is and always has been made available under the AGPLv2 license. Therefore, all third-party open source forks of the Mattermost server source code must comply with the AGPLv2 license in both source code and compiled versions. If you encounter a third-party fork of the publicly available source code of Mattermost server that claims to be licensed under an alternate license, it is incorrect. - -For clarity, this license information regarding forking the source specifically refers to the use (and compilation) of the Mattermost source code by third parties. Third parties are obligated to comply with the open source licenses referenced above in connection with their derivative works. Compiled versions and derivative works of Mattermost prepared by third parties may not be made available under any license other than those under which the applicable source code is made available. - -In contrast, Mattermost, as the copyright holder to the collection of the Mattermost source code, has exercised its exclusive right to make compiled versions of the Mattermost source code available under various other licenses (such as the MIT license and the Mattermost Commercial Enterprise License, as more specifically made clear in the table here: https://docs.mattermost.com/about/faq-license.html). - -How can I create an open source derivative work of Mattermost? --------------------------------------------------------------- - -If you're looking to customize the look and feel of Mattermost, see `documentation on customization `_. For advanced customization, the system's user experience is available in different repositories for web, mobile apps, and desktop apps and custom experiences can be developed and integrated with either Mattermost Team Edition or Mattermost Enterprise Edition via the system APIs and drivers. - -If, instead of using Mattermost Team Edition or Mattermost Enterprise Edition, you choose to compile your own version of the system using the open source code from ``/mattermost``, there are a number of factors to consider: - -Security -~~~~~~~~ - -- If you run a fork of the Mattermost server, we highly recommend you only deploy the system securely behind a firewall and to pay close attention to `Mattermost security updates `_. Mattermost Team Edition and Mattermost Enterprise Edition release security update patches when reports of new attacks are received and verified. Mattermost waits until 14 days after a security patch is released before publicly detailing its nature so that users and customers can upgrade before the security vulnerability is widely known. A malicious user can potentially make use of Mattermost security disclosures to exploit a fork of Mattermost if the security upgrade is not promptly incorporated into the forked version. - -Rebranding -~~~~~~~~~~ - -- When you create a derivative version of Mattermost and share it with others as a product, you need to replace the Mattermost name and logo from the system, among other requirements, per the `Mattermost trademark policy `_. -- You can rebrand your system using :doc:`custom branding tools `. -- For advanced whitelabelling, and to whitelabel in Team Edition under MIT license without Enterprise Edition branding tools, you can manually update files on the Mattermost server `per product documentation. `_ This can also be done without forking. - -Copyright and Licensing of ``/mattermost`` open source code -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -- Compiling and distributing your own version of the open source Mattermost ``/mattermost`` repo requires a) compliance with licenses in the repo, including `NOTICE.txt `_, and b) the compiled version of the ``/mattermost`` source code should have the same open source license as the source code, :doc:`per our licensing policy `. - -Other considerations -~~~~~~~~~~~~~~~~~~~~ - -- Mattermost has a default :ref:`Terms of Use ` agreement for the Terms of Use link at the bottom of login screen that should be incorporated into any additional Terms of Use you may add. - -- The Mattermost copyright notices on the user interface should remain. -- There may be additional legal and regulatory issues to consider and we recommend you employ legal counsel to fully understand what's involved in creating and selling a derivative work. - -Will Mattermost complete questionnaires requiring confidential data without an NDA? ------------------------------------------------------------------------------------ - -No, Mattermost will not complete questionnaires requiring confidential data without a non-disclosure agreement. - -Why does Mattermost have a discount for certain kinds of non-profits but not for others? ----------------------------------------------------------------------------------------- - -While we welcome anyone to use the open source version of Mattermost Team Edition free of charge, Mattermost, Inc., like any software company, has specific discounting programs for its commercial Mattermost Enterprise Edition based on business objectives. Objectives of the discounting programs include the suitability of potential case studies, references, word-of-mouth promotion and public promotion of solutions, among many other factors. - -See our :doc:`non-profit subscriptions ` documentation for details. - -Can I create a derivative work of the Mattermost /mattermost repository that is not open source? -------------------------------------------------------------------------------------------------------- - -The Mattermost open source project was created by `a group of developers who had their data paywalled by a proprietary online messaging service `_ and felt it was unfair. - -Because of this, the Mattermost /mattermost repository uses an open source license that requires derivative works to use the same open source license. This prevents the creation of derivative works that are not open source, and the situation where end users would not have access to the source code of the systems they use, and hence be at risk of "lock in". - -For companies purchasing Enterprise Edition subscriptions for use by internal staff, who need to modify /mattermost, and who also have legal departments that won't allow their staff to work under an open source software license, a special "Advanced Licensing Option" can be purchased to modify ``/mattermost`` for internal use under a commercial software license. This option is not available for companies that would offer a modified, non-open source version of Mattermost to external parties. - -Will Mattermost, Inc. offer the ability to resell Mattermost software without a reseller agreement? ----------------------------------------------------------------------------------------------------- - -No. - -If there is a case where the reseller agreement is under review and a customer urgently needs an order, Mattermost may, with internal approvals, accept a reseller purchase order with the following language: - -"Any statements, clauses, or conditions included on or referenced by buyer's purchase order forms, which forms modify, add to, or are inconsistent with Mattermost’s standard terms and conditions are expressly rejected. Such orders will only be accepted by Mattermost upon the condition and with the express understanding that despite any such statements, clauses, or conditions contained in any order forms of the buyer are void and have no effect. - -EXCEPT AS OTHERWISE EXPRESSLY AGREED BY THE PARTIES IN WRITING, MATTERMOST MAKES NO WARRANTIES OR REPRESENTATIONS WITH RESPECT TO ANY MATTERMOST PRODUCTS, DOCUMENTATION OR SUPPORT, AND HEREBY DISCLAIMS ALL OTHER EXPRESS AND ALL IMPLIED WARRANTIES, INCLUDING BUT NOT LIMITED TO IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT." - -Does Mattermost answer questions about open source licenses authored by other organizations? ---------------------------------------------------------------------------------------------- - -No, if you have questions about an open source license, please consult the original author, or FAQs they offer. diff --git a/source/product-overview/faq-general.rst b/source/product-overview/faq-general.rst index a785178ff61..b33cfd83366 100644 --- a/source/product-overview/faq-general.rst +++ b/source/product-overview/faq-general.rst @@ -46,3 +46,12 @@ This includes: - We are not permitted to provide our software, including any updates, upgrades or cloud-hosted versions to your organization. We must ask that you do not use any software or online services provided by Mattermost, Inc., including any versions that have been provided online to the general public. We deeply apologize for the inconvenience. We must abide by United States laws. We hope after sanctions are lifted that we can support your interest once again. Please reach out to compliance@mattermost.com for any questions around current export limitations. + +How do I report illicit use of Mattermost software? +--------------------------------------------------- + +Illicit use of Mattermost software to harm others, infringe on their rights, break laws or policies is explicitly against our `Terms of Use `__. + +If the illicit use is happening on a web address ending in ``“mattermost.com”``, it means the suspected perpetrators are using Mattermost software controlled by our company, Mattermost, Inc. In this case, please get in touch with us at ``support@mattermost.com`` to report the issue for us to investigate. + +If the illicit use is happening on a different web address, then it means the suspected perpetrators may be using Mattermost software controlled by a person or company other than Mattermost, Inc. In this case, you need to contact the person or company who controls the web address by using a lookup service such as https://www.whois.com/ to find the contact email to report abuse. You can use a link to this FAQ as a reference to our `Terms of Use `__ policy for Mattermost software. diff --git a/source/product-overview/faq-illicit-use.rst b/source/product-overview/faq-illicit-use.rst deleted file mode 100644 index 7bc412b726f..00000000000 --- a/source/product-overview/faq-illicit-use.rst +++ /dev/null @@ -1,11 +0,0 @@ -Illicit Use -============ - -How do I report illicit use of Mattermost software? ---------------------------------------------------- - -Illicit use of Mattermost software to harm others, infringe on their rights, break laws or policies is explicitly against our `Terms of Use `__. - -If the illicit use is happening on a web address ending in ``“mattermost.com”``, it means the suspected perpetrators are using Mattermost software controlled by our company, Mattermost, Inc. In this case, please get in touch with us at ``support@mattermost.com`` to report the issue for us to investigate. - -If the illicit use is happening on a different web address, then it means the suspected perpetrators may be using Mattermost software controlled by a person or company other than Mattermost, Inc. In this case, you need to contact the person or company who controls the web address by using a lookup service such as https://www.whois.com/ to find the contact email to report abuse. You can use a link to this FAQ as a reference to our `Terms of Use `__ policy for Mattermost software. diff --git a/source/product-overview/faq-license.rst b/source/product-overview/faq-license.rst index 5fbdb05e2e2..3cc3023045c 100644 --- a/source/product-overview/faq-license.rst +++ b/source/product-overview/faq-license.rst @@ -1,13 +1,16 @@ -Open-source licensing +Business & Licensing ====================== -Terms of use and privacy policy -------------------------------- +.. toctree:: + :maxdepth: 1 + :hidden: + + Source Available License What are Mattermost's policies around licensing, terms of use, and privacy? -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +---------------------------------------------------------------------------- -The following outlines the licensing, terms of use and privacy policies across Mattermost software and services. +The following outlines the licensing, terms of use and privacy policies across Mattermost software and services. See the :doc:`source available license ` documentation to learn what the Mattermost source available license offers. Mattermost Software ~~~~~~~~~~~~~~~~~~~ @@ -87,216 +90,73 @@ Working for Mattermost | Mattermost Consulting | `Mattermost Consulting Terms `_ | +-----------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+ -Source available licensing --------------------------- - -What is the Mattermost Source Available License? -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -A source available license gives access to source code, but places restrictions on its use. The Mattermost Source Available License allows free-of-charge and unrestricted use of the source code in development and testing environments, but requires a valid Mattermost Enterprise Edition License in a production environment. - -How can I identify code licensed as source available? -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -When the Mattermost Source Available ``LICENSE`` file appears at the root of a repository, the restrictions apply to all source code within the repository. A note in the ``README.md`` often identifies the use of this license and links to this FAQ. - -When the Mattermost Source Available ``LICENSE`` file appears in a specific directory, the restrictions apply to all source code within that directory. This directory is often called "enterprise". For additional clarity, an additional ``LICENSE.enterprise`` file may appear in the root directory, symlinked to the ``enterprise/LICENSE`` file. - -In all cases, any third party components remain licensed under their original license. - -An example directory layout, using an Enterprise license, is shown below: - -.. image:: ../images/source-available-license.png - :alt: An example directory layout shows how Enterprise subscription plan restrictions apply to Mattermost source code based on where the Mattermost Source Available license file appears in the Mattermost deployment directory. - -Why are you changing the licensing model? -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Our plugin framework delivers substantial value to our enterprise customers but requires significant development and support resources. This change to the licensing model allows us to continue developing open source features while selectively charging for features. - -How are repositories changing? -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -As we add enterprise-only functionality, we will update the license on affected Mattermost-authored plugin repositories. The intent is to work alongside the existing, open source functionality in our plugins while reserving certain enterprise functionality to customers who pay us for enterprise licenses. - -Will the repositories be public? -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Yes, existing repositories will stay public. We are now also able to make public several enterprise-only plugins under the Mattermost Source Available License previously developed in private. - -Can I still contribute? -~~~~~~~~~~~~~~~~~~~~~~~ - -Yes, we continue to welcome all contributions. Mattermost may select some contributions as enterprise features and license them under the Mattermost Source Available License. We will aim to communicate such decisions as early as possible in the contribution process. - -As with all Mattermost repositories, you will still need to sign the `Mattermost CLA `_. We will not accept contributions without signing the Mattermost CLA. - -Do I need to re-sign the `Mattermost CLA `_? -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -No, if you have already signed the `Mattermost CLA `_, you do not need to sign it again. - -Can I compile your plugins by myself? -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Yes. If you have a Mattermost Enterprise Edition license, you are free to compile and use a plugin under the Mattermost Source Available License. Furthermore, if you are developing against or testing with such a plugin, you are free to compile and test a plugin even without a Mattermost Enterprise Edition license. Without an Enterprise Edition license, source available plugins may have reduced functionality or refuse to start altogether. Request a `trial license `_ if your testing requires access to enterprise functionality. - -Several of our customers value complete access to our source code and compile our plugins from source before deploying to their production servers. By adopting the Mattermost Source Available License, we can develop enterprise-only features in public without impacting this workflow. - -Will you distribute open source plugin binaries without any licensing restrictions? -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -At this time, we have no plans to distribute more than one version of each of our plugins. Without a Mattermost Enterprise Edition License, plugins may have reduced functionality or refuse to start altogether. - -Can I continue to use the existing open source repositories without restriction? -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Yes, the Mattermost Source Available License will only apply from the date it is added and to the versions in which it is included. - -Do I need to use the Mattermost Source Available License for plugins I create? -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -You are free to license your own code as you see fit. We will not apply the Mattermost Source Available License either to the `starter-template `_ or `demo `_ plugins, leaving them under a permissive open source license to give you the freedom to develop your own plugins. - -Can I publish my own plugin and rely on enterprise specific functionality? -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -As before, you are free to license your own code as you see fit. Note that some server functionality is only enabled with a Mattermost Enterprise license regardless of how you license your plugin. - -Can’t someone compile out any license restrictions? -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -We trust our community to honor the Mattermost Source Available License and work alongside us to develop features across our free and paid offerings. Our Support team does not provide support to unlicensed, enterprise-only functionality. - -If I make my own plugin using your source available code, can I remove the license restriction? -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -No, the Mattermost Source Available License continues to apply to modifications. - -Will you pursue legal action if this license is violated? -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Yes, if necessary. But we would always rather collaborate, so if you need to negotiate a different license, please ask us. - -Is this a legal document? -~~~~~~~~~~~~~~~~~~~~~~~~~ - -No. This FAQ is informational only. The Mattermost Source Available License stands on its own, and this FAQ does not affect its meaning. - -What is the full text of the Mattermost Source Available License? -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -"The Mattermost Source Available License (the “Source Available License”) -(c) Mattermost, Inc. 2015-present. - -With regard to the Mattermost Software: - -This software and associated documentation files (the "Software") may only be -used in production, if you (and any entity that you represent) have agreed to, -and are in compliance with all of the following: (a) the Mattermost Terms of Use, -available at https://mattermost.com/terms-of-use/ (the "TOU"), (b) and the Mattermost -Software License Agreement, available at https://mattermost.com/enterprise-edition-terms/ -(the “SLA”) or other licensing agreement governing your use of the Software, as agreed -by you and Mattermost, and otherwise have a valid Mattermost Enterprise for the correct -number of Registered Authorized Users the Software. Subject to the foregoing, you are free -to modify this Software and publish patches to the Software. You agree that -Mattermost and/or its licensors (as applicable) retain all right, title and -interest in and to all such modifications and/or patches, and all such -modifications and/or patches may only be used, copied, modified, displayed, -distributed, or otherwise exploited with a valid license or Subscription for the correct number of -Registered Authorized Users of the Software. Notwithstanding -the foregoing, you may copy and modify the Software for development and testing -purposes, without requiring a valid license or Subscription. You agree that Mattermost and/or -its licensors (as applicable) retain all right, title and interest in and to -all such modifications. You are not granted any other rights beyond what is -expressly stated herein. Subject to the foregoing, it is forbidden to copy, -merge, publish, distribute, sublicense, and/or sell the Software. - -The full text of this Source Available License shall be included in all copies or substantial -portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - -For all third party components incorporated into the Mattermost Software, those -components are licensed under the original license provided by the owner of the -applicable component." - -Open source derivative work of Mattermost ------------------------------------------ - How do I fork Mattermost? ------------------------- -If you wish to create a forked version of the Mattermost source code, you must comply with the applicable licenses under which the source code is made available. Historically, this was made clear via this link: https://docs.mattermost.com/about/faq-business.html#copyright-and-licensing-of-mattermost-open-source-code. - +If you wish to create a forked version of the Mattermost source code, you must comply with the applicable licenses under which the source code is made available. + For example, the Mattermost server source code is and always has been made available under the AGPLv2 license. Therefore, all third-party open source forks of the Mattermost server source code must comply with the AGPLv2 license in both source code and compiled versions. If you encounter a third-party fork of the publicly available source code of Mattermost server that claims to be licensed under an alternate license, it is incorrect. For clarity, this license information regarding forking the source specifically refers to the use (and compilation) of the Mattermost source code by third parties. Third parties are obligated to comply with the open source licenses referenced above in connection with their derivative works. Compiled versions and derivative works of Mattermost prepared by third parties may not be made available under any license other than those under which the applicable source code is made available. -In contrast, Mattermost, as the copyright holder to the collection of the Mattermost source code, has exercised its exclusive right to make compiled versions of the Mattermost source code available under various other licenses (such as the MIT license and the Mattermost Commercial Enterprise License, as more specifically made clear in the table here: https://docs.mattermost.com/about/faq-enterprise.html#what-are-mattermost-s-policies-around-licensing-terms-of-use-and-privacy). +In contrast, Mattermost, as the copyright holder to the collection of the Mattermost source code, has exercised its exclusive right to make compiled versions of the Mattermost source code available under various other licenses (such as the MIT license and the Mattermost Commercial Enterprise License, as more specifically made clear in the table here: https://docs.mattermost.com/about/faq-license.html). How can I create an open source derivative work of Mattermost? -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +-------------------------------------------------------------- -If you're looking to customize the look and feel of Mattermost, see `documentation on customization `_. For advanced customization, the system's user experience is available in different repositories for web, mobile apps, and desktop apps and custom experiences can be developed and integrated with either Mattermost Team Edition or Mattermost Enterprise Edition via the system APIs and drivers. +If you're looking to customize the look and feel of Mattermost, see the :doc:`customization ` documentation. For advanced customization, the system's user experience is available in different repositories for web, mobile apps, and desktop apps and custom experiences can be developed and integrated via the system APIs and custom plugins. If, instead of using Mattermost Team Edition or Mattermost Enterprise Edition, you choose to compile your own version of the system using the open source code from ``/mattermost``, there are a number of factors to consider: Security -^^^^^^^^ +~~~~~~~~ -- If you run a fork of the Mattermost server, we highly recommend you only deploy the system securely behind a firewall and to pay close attention to `Mattermost security updates `_. Mattermost Team Edition and Mattermost Enterprise Edition release security update patches when reports of new attacks are received and verified. Mattermost waits until 14 days after a security patch is released before publicly detailing its nature so that users and customers can upgrade before the security vulnerability is widely known. A malicious user can potentially make use of Mattermost security disclosures to exploit a fork of Mattermost if the security upgrade is not promptly incorporated into the forked version. +- If you run a fork of the Mattermost server, we highly recommend you only deploy the system securely behind a firewall and to pay close attention to `Mattermost security updates `_. Mattermost Team Edition and Mattermost Enterprise Edition release security update patches when reports of new attacks are received and verified. Mattermost waits until 30 days after a security patch is released before publicly detailing its nature so that users and customers can upgrade before the security vulnerability is widely known. A malicious user can potentially make use of Mattermost security disclosures to exploit a fork of Mattermost if the security upgrade is not promptly incorporated into the forked version. Rebranding -^^^^^^^^^^ +~~~~~~~~~~ - When you create a derivative version of Mattermost and share it with others as a product, you need to replace the Mattermost name and logo from the system, among other requirements, per the `Mattermost trademark policy `_. -- You can rebrand your system using convenience tools for :doc:`custom branding `. -- For advanced whitelabelling, and to whitelabel in Team Edition under MIT license without Enterprise Edition branding tools, you can manually update files on the Mattermost server `per product documentation. `_ This can also be done without forking. +- You can rebrand your system using :doc:`custom branding tools `. +- For advanced whitelabelling, you can manually update files on the Mattermost server `per product documentation. `_ This can also be done without forking. Copyright and Licensing of ``/mattermost`` open source code -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -- Compiling and distributing your own version of the open source Mattermost ``/mattermost`` repo requires a) compliance with licenses in the repo, including `NOTICE.txt `_, and b) the compiled version of the ``/mattermost`` source code should have the same open source license as the source code, :doc:`per our licensing policy `. +- Compiling and distributing your own version of the open source Mattermost ``/mattermost`` repo requires a) compliance with licenses in the repo, including `NOTICE.txt `_, and b) the compiled version of the ``/mattermost`` source code should have the same open source license as the source code, :doc:`per our licensing policy `. Other considerations -^^^^^^^^^^^^^^^^^^^^ +~~~~~~~~~~~~~~~~~~~~ - Mattermost has a default :ref:`Terms of Use ` agreement for the Terms of Use link at the bottom of login screen that should be incorporated into any additional Terms of Use you may add. - The Mattermost copyright notices on the user interface should remain. - There may be additional legal and regulatory issues to consider and we recommend you employ legal counsel to fully understand what's involved in creating and selling a derivative work. -Will Mattermost complete questionnaires requiring confidential data without an NDA? -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Can I create a derivative work of the Mattermost /mattermost repository that is not open source? +------------------------------------------------------------------------------------------------- -No, Mattermost will not complete questionnaires requiring confidential data without a non-disclosure agreement. You can find `Mattermost's standard mutual non-disclosure agreement online `_. +The Mattermost open source project was created by `a group of developers who had their data paywalled by a proprietary online messaging service `_ and felt it was unfair. -Why does Mattermost have a discount for certain kinds of non-profits but not for others? -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Because of this, the Mattermost /mattermost repository uses an open source license that requires derivative works to use the same open source license. This prevents the creation of derivative works that are not open source, and the situation where end users would not have access to the source code of the systems they use, and hence be at risk of "lock in". -While we welcome anyone to use the open source version of Mattermost Team Edition free of charge, Mattermost, Inc., like any software company, has specific discounting programs for its commercial Mattermost Enterprise Edition based on business objectives. Objectives of the discounting programs include the suitability of potential case studies, references, word-of-mouth promotion and public promotion of solutions, among many other factors. +For companies purchasing Enterprise Edition subscriptions for use by internal staff, who need to modify /mattermost, and who also have legal departments that won't allow their staff to work under an open source software license, a special "Advanced Licensing Option" can be purchased to modify /mattermost for internal use under a commercial software license. This option is not available for companies that would offer a modified, non-open source version of Mattermost to external parties. -See our :doc:`non-profit subscriptions ` documentation for details. +Does Mattermost answer questions about open source licenses authored by other organizations? +------------------------------------------------------------------------------------------------ -Can I create a derivative work of the Mattermost /mattermost repository that is not open source? -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +No, if you have questions about an open source license, please consult the original author, or FAQs they offer. -The Mattermost open source project was created by `a group of developers who had their data paywalled by a proprietary online messaging service `_ and felt it was unfair. +Why does Mattermost have a discount for certain kinds of non-profits but not for others? +---------------------------------------------------------------------------------------- -Because of this, the Mattermost /mattermost repository uses an open source license that requires derivative works to use the same open source license. This prevents the creation of derivative works that are not open source, and the situation where end users would not have access to the source code of the systems they use, and hence be at risk of "lock in". +While we welcome anyone to use the open source version of Mattermost Team Edition free of charge, Mattermost, Inc., like any software company, has specific discounting programs for its commercial Mattermost Enterprise Edition based on business objectives. Objectives of the discounting programs include the suitability of potential case studies, references, word-of-mouth promotion and public promotion of solutions, among many other factors. -For companies purchasing Enterprise Edition subscriptions for use by internal staff, who need to modify /mattermost, and who also have legal departments that won't allow their staff to work under an open source software license, a special "Advanced Licensing Option" can be purchased to modify /mattermost for internal use under a commercial software license. This option is not available for companies that would offer a modified, non-open source version of Mattermost to external parties. +See our :doc:`non-profit subscriptions ` documentation for details. -Will Mattermost, Inc. offer the ability to resell Mattermost software without a reseller agreement? -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Will Mattermost, Inc. offer the ability to resell Mattermost software without a reseller agreement? +-------------------------------------------------------------------------------------------------------- No. If there is a case where the reseller agreement is under review and a customer urgently needs an order, Mattermost may, with internal approvals, accept a reseller purchase order with the following language: @@ -305,9 +165,9 @@ If there is a case where the reseller agreement is under review and a customer u EXCEPT AS OTHERWISE EXPRESSLY AGREED BY THE PARTIES IN WRITING, MATTERMOST MAKES NO WARRANTIES OR REPRESENTATIONS WITH RESPECT TO ANY MATTERMOST PRODUCTS, DOCUMENTATION OR SUPPORT, AND HEREBY DISCLAIMS ALL OTHER EXPRESS AND ALL IMPLIED WARRANTIES, INCLUDING BUT NOT LIMITED TO IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT." -Does Mattermost answer questions about open source licenses authored by other organizations? -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -No, if you have questions about an open source license, please consult the original author, or FAQs they offer. +Will Mattermost complete questionnaires requiring confidential data without an NDA? +----------------------------------------------------------------------------------- + +No, Mattermost will not complete questionnaires requiring confidential data without a non-disclosure agreement. -`Book a live demo `_ or `talk to a Mattermost expert `_ to explore tailored solutions for your organization's secure collaboration needs. Or try Mattermost yourself with a `1-hour preview `_ for instant access to a live sandbox environment. diff --git a/source/product-overview/frequently-asked-questions.rst b/source/product-overview/frequently-asked-questions.rst index 853e5fa8905..5fceac957ae 100644 --- a/source/product-overview/frequently-asked-questions.rst +++ b/source/product-overview/frequently-asked-questions.rst @@ -8,17 +8,11 @@ Frequently Asked Questions General Enterprise Federal Procurement - License - Mattermost Source Available License - Business - Illicit Use + Business & Licensing The following pages will answer many of your frequently asked questions about Mattermost: * :doc:`General ` - Learn more about Mattermost, its largest deployment, and answers to commonly asked questions. * :doc:`Enterprise ` - Learn about Mattermost Enterprise Edition. * :doc:`Federal Procurement ` - Learn about Mattermost in federal government environments. -* :doc:`License ` - Learn more about Mattermost licenses. -* :doc:`Mattermost source available license ` - Learn what the Mattermost source available license offers. -* :doc:`Business ` - Can you create an open source derivative work of Mattermost? -* :doc:`Illicit use ` - Learn how to report illicit use of Mattermost software. \ No newline at end of file +* :doc:`Business & Licensing ` - Learn more about Mattermost licenses. \ No newline at end of file diff --git a/source/product-overview/mattermost-desktop-releases.md b/source/product-overview/mattermost-desktop-releases.md index 90b08402281..c5b0d117f77 100644 --- a/source/product-overview/mattermost-desktop-releases.md +++ b/source/product-overview/mattermost-desktop-releases.md @@ -21,7 +21,7 @@ Mattermost releases a new desktop app version every 4 months, in February, May, | **Release** | **Support** | **Compatible with** | |:---|:---|:---| -| v5.13 [Download](https://github.com/mattermost/desktop/releases/tag/v5.13.0) \| {ref}`Changelog ` \| [SBOM download](https://github.com/mattermost/desktop/releases/download/v5.13.0/sbom-desktop-v5.13.0.json) | Released: 2025-08-15
Support Ends: 2026-08-15 {ref}`EXTENDED ` | {ref}`v10.11 `, {ref}`v10.10 `, {ref}`v10.9 `, {ref}`v10.5 ` | +| v5.13 [Download](https://github.com/mattermost/desktop/releases/tag/v5.13.1) \| {ref}`Changelog ` \| [SBOM download](https://github.com/mattermost/desktop/releases/download/v5.13.1/sbom-desktop-v5.13.1.json) | Released: 2025-08-15
Support Ends: 2026-08-15 {ref}`EXTENDED ` | {ref}`v10.11 `, {ref}`v10.10 `, {ref}`v10.9 `, {ref}`v10.5 ` | | v5.12 [Download](https://github.com/mattermost/desktop/releases/tag/v5.12.1) \| {ref}`Changelog ` \| [SBOM download](https://github.com/mattermost/desktop/releases/download/v5.12.1/sbom-desktop-v5.12.1.json) | Released: 2025-05-16
Support Ends: 2025-08-15 | {ref}`v10.10 `, {ref}`v10.9 `, {ref}`v10.8 `, {ref}`v10.7 `, {ref}`v10.6 `, {ref}`v10.5 ` | | v5.11 [Download](https://github.com/mattermost/desktop/releases/tag/v5.11.3) \| {ref}`Changelog ` | Released: 2025-02-14
Support Ends: 2025-11-15 | {ref}`v10.7 `, {ref}`v10.6 `, {ref}`v10.5 `, {ref}`v10.4 `, {ref}`v10.3 `, {ref}`v9.11 ` | | v5.10 [Download](https://github.com/mattermost/desktop/releases/tag/v5.10.2) \| {ref}`Changelog ` | Released: 2024-11-15
Support Ends: 2025-02-13 | {ref}`v10.2 `, {ref}`v10.1 `, {ref}`v10.0 `, {ref}`v9.11 `, {ref}`v9.5 ` | diff --git a/source/product-overview/mattermost-server-releases.md b/source/product-overview/mattermost-server-releases.md index 04648a298b4..10aef3f8bd7 100644 --- a/source/product-overview/mattermost-server-releases.md +++ b/source/product-overview/mattermost-server-releases.md @@ -16,8 +16,7 @@ ## Frequency Mattermost releases a new server version on the 16th of each month in [binary form](https://docs.mattermost.com/administration-guide/upgrade/upgrading-mattermost-server.html). - See the [v10 changelog](https://docs.mattermost.com/product-overview/mattermost-v10-changelog.html) for details on what's coming and changing in the next major release. -- See the [v9 changelog](https://docs.mattermost.com/product-overview/mattermost-v9-changelog.html) for details on v9.x server releases. -- See the [unsupported Mattermost legacy releases](https://docs.mattermost.com/product-overview/unsupported-legacy-releases.html) documentation for details on older, unsupported Mattermost releases. +- See the [unsupported Mattermost legacy releases](https://docs.mattermost.com/product-overview/unsupported-legacy-releases.html) documentation for details on older, unsupported Mattermost releases. ## Latest releases @@ -29,22 +28,10 @@ Mattermost releases a new server version on the 16th of each month in [binary fo | v10.8 [Download](https://releases.mattermost.com/10.8.4/mattermost-10.8.4-linux-amd64.tar.gz) \| {ref}`Changelog ` \|
SBOM
| 2025-05-16 | 2025-08-15 | | v10.7 [Download](https://releases.mattermost.com/10.7.4/mattermost-10.7.4-linux-amd64.tar.gz) \| {ref}`Changelog ` \|
SBOM
| 2025-04-16 | 2025-07-15 | | v10.6 [Download](https://releases.mattermost.com/10.6.6/mattermost-10.6.6-linux-amd64.tar.gz) \| {ref}`Changelog ` \|
SBOM
| 2025-03-16 | 2025-06-15 | -| v10.5 [Download](https://releases.mattermost.com/10.5.10/mattermost-10.5.10-linux-amd64.tar.gz) \| {ref}`Changelog ` \|
SBOM
| 2025-02-16 | 2025-11-15 {ref}`EXTENDED ` | +| v10.5 [Download](https://releases.mattermost.com/10.5.11/mattermost-10.5.11-linux-amd64.tar.gz) \| {ref}`Changelog ` \|
SBOM
| 2025-02-16 | 2025-11-15 {ref}`EXTENDED ` | | v10.4 [Download](https://releases.mattermost.com/10.4.5/mattermost-10.4.5-linux-amd64.tar.gz) \| {ref}`Changelog ` \|
SBOM
| 2025-01-16 | 2025-04-15 | | v10.3 [Download](https://releases.mattermost.com/10.3.4/mattermost-10.3.4-linux-amd64.tar.gz) \| {ref}`Changelog ` \|
SBOM
| 2024-12-16 | 2025-03-15 | | v10.2 [Download](https://releases.mattermost.com/10.2.3/mattermost-10.2.3-linux-amd64.tar.gz) \| {ref}`Changelog ` \|
SBOM
| 2024-11-15 | 2025-02-15 | | v10.1 [Download](https://releases.mattermost.com/10.1.7/mattermost-10.1.7-linux-amd64.tar.gz) \| {ref}`Changelog ` \|
SBOM
| 2024-10-16 | 2025-01-15 | | v10.0 [Download](https://releases.mattermost.com/10.0.4/mattermost-10.0.4-linux-amd64.tar.gz) \| {ref}`Changelog ` \|
SBOM
| 2024-09-16 | 2024-12-15 | -| v9.11 [Download](https://releases.mattermost.com/9.11.18/mattermost-9.11.18-linux-amd64.tar.gz) \| {ref}`Changelog ` | 2024-08-16 | 2025-05-15 {ref}`EXTENDED ` | -| v9.10 [Download](https://releases.mattermost.com/9.10.3/mattermost-9.10.3-linux-amd64.tar.gz) \| {ref}`Changelog ` | 2024-07-16 | 2024-10-15 | -| v9.9 [Download](https://releases.mattermost.com/9.9.3/mattermost-9.9.3-linux-amd64.tar.gz) \| {ref}`Changelog ` | 2024-06-14 | 2024-09-15 | -| v9.8 [Download](https://releases.mattermost.com/9.8.3/mattermost-9.8.3-linux-amd64.tar.gz) \| {ref}`Changelog ` | 2024-05-16 | 2024-08-15 | -| v9.7 [Download](https://releases.mattermost.com/9.7.6/mattermost-9.7.6-linux-amd64.tar.gz) \| {ref}`Changelog ` | 2024-04-16 | 2024-07-15 | -| v9.6 [Download](https://releases.mattermost.com/9.6.3/mattermost-9.6.3-linux-amd64.tar.gz) \| {ref}`Changelog ` | 2024-03-16 | 2024-06-15 | -| v9.5 [Download](https://releases.mattermost.com/9.5.14/mattermost-9.5.14-linux-amd64.tar.gz) \| {ref}`Changelog ` | 2024-02-16 | 2024-11-15 {ref}`EXTENDED ` | -| v9.4 [Download](https://releases.mattermost.com/9.4.5/mattermost-9.4.5-linux-amd64.tar.gz) \| {ref}`Changelog ` | 2024-01-16 | 2024-04-15 | -| v9.3 [Download](https://releases.mattermost.com/9.3.3/mattermost-9.3.3-linux-amd64.tar.gz) \| {ref}`Changelog ` | 2023-12-16 | 2024-03-15 | -| v9.2 [Download](https://releases.mattermost.com/9.2.6/mattermost-9.2.6-linux-amd64.tar.gz) \| {ref}`Changelog ` | 2023-11-16 | 2024-02-15 | -| v9.1 [Download](https://releases.mattermost.com/9.1.5/mattermost-9.1.5-linux-amd64.tar.gz) \| {ref}`Changelog ` | 2023-10-16 | 2024-01-15 | -| v9.0 [Download](https://releases.mattermost.com/9.0.5/mattermost-9.0.5-linux-amd64.tar.gz) \| {ref}`Changelog ` | 2023-09-16 | 2023-12-15 | | | | | diff --git a/source/product-overview/mattermost-v10-changelog.md b/source/product-overview/mattermost-v10-changelog.md index c09a874d240..6626d390027 100644 --- a/source/product-overview/mattermost-v10-changelog.md +++ b/source/product-overview/mattermost-v10-changelog.md @@ -646,6 +646,11 @@ New setting options were added to ``config.json``. Below is a list of the additi (release-v10.5-extended-support-release)= ## Release v10.5 - [Extended Support Release](https://docs.mattermost.com/about/release-policy.html#release-types) +- **10.5.11, released 2025-09-10** + - Mattermost v10.5.11 contains low to high severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). + - Fixed an issue where the content of webhook posts did not display [MM-64626](https://mattermost.atlassian.net/browse/MM-64626). + - Fixed an issue where unread messages from muted channels were shown in the favicon/desktop app [MM-64883](https://mattermost.atlassian.net/browse/MM-64883). + - Mattermost v10.5.11 contains no database or functional changes. - **10.5.10, released 2025-08-15** - Mattermost v10.5.10 contains low to high severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.html) to this release as soon as possible is highly 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.com/security-vulnerability-report/). - Mattermost v10.5.10 contains no database or functional changes. diff --git a/source/product-overview/mattermost-v9-changelog.md b/source/product-overview/mattermost-v9-changelog.md deleted file mode 100644 index a3605385161..00000000000 --- a/source/product-overview/mattermost-v9-changelog.md +++ /dev/null @@ -1,1468 +0,0 @@ -# v9 Changelog - -```{eval-rst} -.. meta:: - :page_title: Mattermost Server v9 Release Notes -``` - -```{Important} -```{include} common-esr-support-upgrade.md -``` - -(release-v9-11-extended-support-release)= -## Release v9.11 - [Extended Support Release](https://docs.mattermost.com/about/release-policy.html#release-types) - -- **9.11.18, released 2025-07-22** - - Mattermost v9.11.18 contains low to high severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). - - Pre-packaged Boards plugin version [v9.1.5](https://github.com/mattermost/mattermost-plugin-boards/releases/tag/v9.1.5). - - Mattermost v9.11.18 contains no database or functional changes. -- **9.11.17, released 2025-06-18** - - Mattermost v9.11.17 contains high severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). - - Pre-packaged Boards plugin version [v9.1.3](https://github.com/mattermost/mattermost-plugin-boards/releases/tag/v9.1.3). - - Pre-packaged Playbooks plugin [v1.41.1](https://github.com/mattermost/mattermost-plugin-playbooks/releases/tag/v1.41.1). - - Mattermost v9.11.17 contains no database or functional changes. -- **9.11.16, released 2025-05-21** - - Mattermost v9.11.16 contains a Critical severity level security fix. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.html) to this release as soon as possible is highly 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.com/security-vulnerability-report/). - - Mattermost v9.11.16 contains no database or functional changes. -- **9.11.15, released 2025-05-09** - - Mattermost v9.11.15 contains low to medium severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). - - Brought back the bug fix for [MM-61361](https://mattermost.atlassian.net/browse/MM-61361), since the performance regression has been fixed by tweaking the offending SQL query. - - Mattermost v9.11.15 contains the following database changes: - - A new index was added to the ``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. -- **9.11.14, released 2025-05-05** - - Mattermost v9.11.14 contains a medium severity level security fix. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). - - Reverted a bug fix for [MM-61361](https://mattermost.atlassian.net/browse/MM-61361) that likely introduced a performance regression. - - Mattermost v9.11.14 contains no database or functional changes. -- **9.11.13, released 2025-04-29** - - Mattermost v9.11.13 contains low to medium severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). - - Mattermost v9.11.13 contains no database or functional changes. -- **9.11.12, released 2025-04-15** - - Mattermost v9.11.12 contains low to medium severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). - - Stopped logging websocket PING events received by the server [MM-63693](https://mattermost.atlassian.net/browse/MM-63693). - - Mattermost v9.11.12 contains no database or functional changes. -- **9.11.11, released 2025-03-24** - - Mattermost v9.11.11 contains low to medium severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). - - Pre-packaged Playbooks plugin [v1.41.0](https://github.com/mattermost/mattermost-plugin-playbooks/releases/tag/v1.41.0). - - Mattermost v9.11.11 contains no database or functional changes. -- **9.11.10, released 2025-03-17** - - Mattermost v9.11.10 contains low to high severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). - - Fixed errors logged by performance telemetry due to certain browser extensions [MM-62371](https://mattermost.atlassian.net/browse/MM-62371). - - Pre-packaged Calls plugin version [v0.29.8](https://github.com/mattermost/mattermost-plugin-calls/releases/tag/v0.29.8). - - Mattermost v9.11.10 contains no database or functional changes. -- **9.11.9, released 2025-02-19** - - Mattermost v9.11.9 contains low to high severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). - - Pre-packaged Boards plugin [v9.1.1](https://github.com/mattermost/mattermost-plugin-boards/releases/tag/v9.1.1). - - Fixed an issue in Compliance Exports whereby a missing file attachment in S3 could prevent the export run from completing [MM-62527](https://mattermost.atlassian.net/browse/MM-62527). - - Mattermost v9.11.9 contains no database or functional changes. -- **9.11.8, released 2025-01-22** - - Mattermost v9.11.8 contains critical severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). - - Pre-packaged Boards plugin [v9.0.5](https://github.com/mattermost/mattermost-plugin-boards/releases/tag/v9.0.5). - - Pre-packaged Channel Export plugin [v1.2.1](https://github.com/mattermost/mattermost-plugin-channel-export/releases/tag/v1.2.1). - - Pre-packaged Calls plugin [v0.29.7](https://github.com/mattermost/mattermost-plugin-calls/releases/tag/v0.29.7). - - Fixed a panic during LDAP synchronization [MM-61239](https://mattermost.atlassian.net/browse/MM-61239). - - Fixed an issue where the bulk export retention job would accidentally delete non-bulk export files and directories [MM-60888](https://mattermost.atlassian.net/browse/MM-60888). - - Fixed an issue where new messages from new channels wouldn't appear in the sidebar after reconnecting the websocket [MM-61361](https://mattermost.atlassian.net/browse/MM-61361). - - Mattermost v9.11.8 contains no database or functional changes. -- **9.11.7, released 2025-01-15** - - Mattermost v9.11.7 contains low to medium severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). - - Fixed an issue with the web app status not being updated correctly for the current user [MM-59952](https://mattermost.atlassian.net/browse/MM-59952). - - Pre-packaged Boards plugin [v9.0.2](https://github.com/mattermost/mattermost-plugin-boards/releases/tag/v9.0.2). - - Fixed an issue with insertion errors to ``LinkMetadata`` table. - - Fixed an issue where the scroll position reset when custom emojis were requested [MM-62102](https://mattermost.atlassian.net/browse/MM-62102). - - Mattermost v9.11.7 contains the following database changes: - - Fixed an issue where Direct and Group Messages with a ``DeleteAt`` flag in the database could cause issues with some APIs. -- **9.11.6, released 2024-12-10** - - Mattermost v9.11.6 contains low to medium severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). - - A 200 response is now returned for HEAD requests to a sub-path rather than responding with a 302. This fixes mobile devices trying to connect to a server hosted on a sub-path [MM-58042](https://mattermost.atlassian.net/browse/MM-58042). - - Pre-packaged Calls plugin [v0.29.6](https://github.com/mattermost/mattermost-plugin-calls/releases/tag/v0.29.6). - - Fixed an issue with incorrect reporting in the **Server Updates** section in **System Console > Workspace Optimizations** [MM-62030](https://mattermost.atlassian.net/browse/MM-62030). - - Mattermost v9.11.6 contains no database or functional changes. -- **9.11.5, released 2024-11-14** - - Mattermost v9.11.5 contains medium severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). - - Pre-packaged Calls plugin [v0.29.4](https://github.com/mattermost/mattermost-plugin-calls/releases/tag/v0.29.4). - - Mattermost v9.11.5 contains no database or functional changes. -- **9.11.4, released 2024-10-28** - - Mattermost v9.11.4 contains a high severity level security fix. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). - - Fixed an issue where users would not see channels they were added to/messages from those channels in clustered environments [MM-59911](https://mattermost.atlassian.net/browse/MM-59911). - - Mattermost v9.11.4 contains no database or functional changes. -- **9.11.3, released 2024-10-10** - - Mattermost v9.11.3 contains low to medium severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). - - Fixed an issue with YouTube previews no longer being displayed [MM-60351](https://mattermost.atlassian.net/browse/MM-60351). - - Improved the performance of LDAP sync jobs when group-contained teams and channels are used [MM-60253](https://mattermost.atlassian.net/browse/MM-60253). - - Mattermost v9.11.3 contains no database or functional changes. -- **9.11.2, released 2024-09-26** - - Mattermost v9.11.2 contains low to medium severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). - - Added Mattermost user survey plugin to pre-packaged plugins, [v1.1.1](https://github.com/mattermost/mattermost-plugin-user-survey/releases). - - Pre-packaged Calls plugin [v0.29.2](https://github.com/mattermost/mattermost-plugin-calls/releases/tag/v0.29.2). - - Pre-packaged Playbooks plugin [v1.40.0](https://github.com/mattermost/mattermost-plugin-playbooks/releases/tag/v1.40.0). - - Fixed an issue where the **Edit Post Time Limit** button was not being displayed in the System Console ([MM-58529](https://mattermost.atlassian.net/browse/MM-58529), [MM-58824](https://mattermost.atlassian.net/browse/MM-58824)). - - Fixed racy use of session in ``NewWebConn`` [MM-60307](https://mattermost.atlassian.net/browse/MM-60307). - - Mattermost v9.11.2 contains the following functional change: - - Added a configuration setting **NativeAppSettings > MobileExternalBrowser** that tells the Mobile app to perform SSO Authentication using the external default browser [MM-60332](https://mattermost.atlassian.net/browse/MM-60332). -- **9.11.1, released 2024-08-27** - - Mattermost v9.11.1 contains low to medium severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). - - Mattermost v9.11.1 contains no database or functional changes. -- **9.11.0, released 2024-08-16** - - Original 9.11.0 release. - -### Important Upgrade Notes - - - Added support for Elasticsearch v8. Also added Beta support for [OpenSearch v1.x and v2.x](https://opensearch.org/). A new config setting ``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. - - Mattermost supports Elasticsearch v7.17+. However, we recommend upgrading your Elasticsearch v7 instance to v8.x. See the [Elasticsearch upgrade](https://www.elastic.co/guide/en/elasticsearch/reference/current/setup-upgrade.html) documentation for details. - - When using Elasticsearch v8, ensure you set ``action.destructive_requires_name`` to ``false`` in ``elasticsearch.yml`` to allow for wildcard operations to work. - -```{Important} -**AWS Elasticsearch** - -If you're using AWS Elasticsearch, you must: -1. Upgrade to AWS OpenSearch. Refer to the [OpenSearch upgrade](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/version-migration.html) documentation for details. -2. Disable "compatibility mode" in OpenSearch. -3. Upgrade Mattermost server. -4. Update the Mattermost `ElasticsearchSettings.Backend` configuration setting value from `elasticsearch` to `opensearch` manually or using [mmctl](https://docs.mattermost.com/manage/mmctl-command-line-tool.html#mmctl-config-set). This value cannot be changed using the System Console. See the Mattermost [Elasticsearch backend type](https://docs.mattermost.com/configure/environment-configuration-settings.html#elastic-backendtype) documentation for additional details. -5. Restart the Mattermost server. -``` - -### Compatibility - - Updated minimum Edge and Chrome versions to 126+. - - Added Ubuntu Noble support. - -```{Important} -If you upgrade from a release earlier than v9.5, please read the other [Important Upgrade Notes](https://docs.mattermost.com/upgrade/important-upgrade-notes.html). -``` - -### Improvements - -See [this walkthrough video](https://mattermost.com/video/mattermost-v9-11-changelog/) on some of the improvements in our latest release below. - -#### User Interface (UI) - - Pre-packaged Calls version [v0.29.1](https://github.com/mattermost/mattermost-plugin-calls/releases/tag/v0.29.1). - - Pre-packaged GitHub plugin version [v2.3.0](https://github.com/mattermost/mattermost-plugin-github/releases/tag/v2.3.0). - - Added user interface improvements to the keyboard shortcuts modal. - - Added a message "Editing this message with an ``@mention`` will not notify the recipient" in the post edit dialog. - - Made the appearance of several tooltips more consistent. - - Updated the help text in the **Direct Messages** modal. - - Emojis are now placed at cursor position while editing messages. - - Made keyboard shortcuts modal content DIV-accessible via the keyboard. - - Added Channel Bookmarks user interface (disabled by default and behind a feature flag). - -#### Administration - - Added a new feature where an admin with user management permission can now edit a user's settings in **System Console > Users**. - - Added download functionality for admins to download server logs from **Server Logs** page in the **System Console**. - - LDAP vendor errors are now included in the Support Packet. - - Added [metadata](https://docs.mattermost.com/manage/admin/generating-support-packet.html#contents-of-a-support-packet) to the Support Packet. - - We are now adding the user's ID and session ID to the audit log's Actor field for the login event, to match what we provide for the logout event. - - Added support for custom status in bulk export/import. - - Marked the ``RemoteTeamId`` field of the ``RemoteCluster`` entity as deprecated. - - Added log ``Name`` and ``DisplayName`` of groups. - - Logged fields of users are now updated. - -#### Performance - - Added platform related information to the notification metrics. - - Added additional information to INP and LCP client metrics. - - Added minor performance improvements to webapp initialization. - -#### mmctl - - Added two new commands to mmctl, ``mmctl job list`` and ``mmctl job update``. - - Panic message is now printed when mmctl panics. - - Setting ``AdvancedLoggingJSON`` via mmctl is now supported. - -### Bug Fixes - - Fixed an issue that displayed a wrong count for custom group members on the notification warning. - - Fixed a panic when the password was too long. - - Fixed an issue where configuration patches through mmctl did not correctly merge plugin configuration values. - - Fixed issues with the OpenID local development. - - Fixed an issue where Latex was not rendered in a code block as code when Latex rendering was disabled. - - Fixed an issue with saving custom roles. - - Fixed an issue with the left-hand side scrollbar auto-hide functionality for Chrome and Safari. - - Fixed Group Message to private channel conversion edge cases. - - Fixed an issue where users with the user management permission were unable to view the list of users in the **System Console > Users** page. - - Fixed more web app performance reports being marked as outdated after a user's computer woke up from sleep. - -### config.json -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. - -#### Changes to all plans: - - Under ``ServiceSettings`` in ``config.json``: - - Added ``TerminateSessionsOnPasswordChange`` to configure the sessions revocation during password resets. - -#### Changes to the Enterprise plan: - - Under ``ElasticsearchSettings`` in ``config.json``: - - Added ``Backend`` to differentiate between Elasticsearch and OpenSearch. The default value is ``elasticsearch``. - -### API Changes - - Added new API endpoints to manage remote clusters. - - Added two new query parameters to ``GET /api/v4/jobs, job_type`` and status. - - Added a new endpoint ``PATCH /api/v4/jobs/{job_id}/status``. - - Updated ``AddChannelMember`` to accept a list of userIds. - - Added six new permissions to manage the status of particular jobs: - - ``PermissionManagePostBleveIndexesJob`` - - ``PermissionManageDataRetentionJob`` - - ``PermissionManageComplianceExportJob`` - - ``PermissionManageElasticsearchPostIndexingJob`` - - ``PermissionManageElasticsearchPostAggregationJob`` - - ``PermissionManageLdapSyncJob`` - -### Go Version - - v9.11 is built with Go ``v1.21.8``. - -### Open Source Components - - Removed ``stylelint``, and added ``elastic/go-elasticsearch`` to https://github.com/mattermost/mattermost/. - -### Known Issues - - Searching stop words in quotation marks with Elasticsearch enabled returns more than just the searched terms. - - Slack import through the CLI fails if email notifications are enabled. - - The Playbooks left-hand sidebar doesn't update when a user is added to a run or playbook without a refresh. - - If a user isn't a member of a configured broadcast channel, posting a status update might fail without any error feedback. As a temporary workaround, join the configured broadcast channels, or remove those channels from the run configuration. - -### Contributors - - [agarciamontoro](https://github.com/agarciamontoro), [agnivade](https://github.com/agnivade), [amyblais](https://github.com/amyblais), [andreabia](https://translate.mattermost.com/user/andreabia), [andrleite](https://github.com/andrleite), [angeloskyratzakos](https://github.com/angeloskyratzakos), [Aryakoste](https://github.com/Aryakoste), [asaadmahmood](https://github.com/asaadmahmood), [AshishDhama](https://github.com/AshishDhama), [ayusht2810](https://github.com/ayusht2810), [bbodenmiller](https://github.com/bbodenmiller), [BenCookie95](https://github.com/BenCookie95), [BrandonS09](https://github.com/BrandonS09), [calebroseland](https://github.com/calebroseland), [Camillarhi](https://github.com/Camillarhi), [catalintomai](https://github.com/catalintomai), [Celeo](https://github.com/Celeo), [chessmadridista](https://github.com/chessmadridista), [ckaznable](https://github.com/ckaznable), [cpoile](https://github.com/cpoile), [crspeller](https://github.com/crspeller), [ctlaltdieliet](https://translate.mattermost.com/user/ctlaltdieliet), [cwarnermm](https://github.com/cwarnermm), [danielsischy](https://github.com/danielsischy), [devinbinnie](https://github.com/devinbinnie), [Eleferen](https://translate.mattermost.com/user/Eleferen), [enahum](https://github.com/enahum), [enzowritescode](https://github.com/enzowritescode), [ewwollesen](https://github.com/ewwollesen), [fmartingr](https://github.com/fmartingr), [frankps](https://translate.mattermost.com/user/frankps), [gabrieljackson](https://github.com/gabrieljackson), [Gesare5](https://github.com/Gesare5), [grinapo](https://github.com/grinapo), [hanzei](https://github.com/hanzei), [harmeet01singh](https://github.com/harmeet01singh), [harshilsharma63](https://github.com/harshilsharma63), [hmhealey](https://github.com/hmhealey), [ifoukarakis](https://github.com/ifoukarakis), [imanmagomedov.said](https://translate.mattermost.com/user/imanmagomedov.said), [isacikgoz](https://github.com/isacikgoz), [jespino](https://github.com/jespino), [jprusch](https://github.com/jprusch), [JulienTant](https://github.com/JulienTant), [jwilander](https://github.com/jwilander), [kaakaa](https://translate.mattermost.com/user/kaakaa), [kalil0321](https://github.com/kalil0321), [KellieSue](https://github.com/KellieSue), [Kshitij-Katiyar](https://github.com/Kshitij-Katiyar), [larkox](https://github.com/larkox), [lieut-data](https://github.com/lieut-data), [M-ZubairAhmed](https://github.com/M-ZubairAhmed), [majo](https://translate.mattermost.com/user/majo), [marianunez](https://github.com/marianunez), [master7](https://translate.mattermost.com/user/master7), [matt-w99](https://github.com/matt-w99), [matthewbirtch](https://github.com/matthewbirtch), [matthew-w](https://translate.mattermost.com/user/matthew-w), [MeHow25](https://github.com/MeHow25), [mgdelacroix](https://github.com/mgdelacroix), [mickmister](https://github.com/mickmister), [milotype](https://translate.mattermost.com/user/milotype), [Mohamed-sobhi95](https://translate.mattermost.com/user/Mohamed-sobhi95), [mvitale1989](https://github.com/mvitale1989), [natalie-hub](https://github.com/natalie-hub), [nickmisasi](https://github.com/nickmisasi), [ningthoujamSwamikumar](https://github.com/ningthoujamSwamikumar), [Pawel1894](https://github.com/Pawel1894), [phoinixgrr](https://github.com/phoinixgrr), [poppfredslund](https://translate.mattermost.com/user/poppfredslund), [pvev](https://github.com/pvev), [raghavaggarwal2308](https://github.com/raghavaggarwal2308), [rahimrahman](https://github.com/rahimrahman), [Rajat-Dabade](https://github.com/Rajat-Dabade), [recontech404](https://github.com/recontech404), [rOt779kVceSgL](https://translate.mattermost.com/user/rOt779kVceSgL), [sadohert](https://github.com/sadohert), [saturninoabril](https://github.com/saturninoabril), [sbishel](https://github.com/sbishel), [shaon72](https://github.com/shaon72), [Sharuru](https://translate.mattermost.com/user/Sharuru), [shieldsjared](https://github.com/shieldsjared), [stafot](https://github.com/stafot), [streamer45](https://github.com/streamer45), [suraj-anthwal](https://github.com/suraj-anthwal), [svelle](https://github.com/svelle), [ThrRip](https://translate.mattermost.com/user/ThrRip), [tnir](https://github.com/tnir), [toninis](https://github.com/toninis), [varghesejose2020](https://github.com/varghesejose2020), [vhaska](https://translate.mattermost.com/user/vhaska), [wiersgallak](https://github.com/wiersgallak), [wiggin77](https://github.com/wiggin77), [yasserfaraazkhan](https://github.com/yasserfaraazkhan), [yomiadetutu1](https://github.com/yomiadetutu1), [ythosa](https://github.com/ythosa), [zenocode-org](https://translate.mattermost.com/user/zenocode-org), [ZubairImtiaz3](https://github.com/ZubairImtiaz3) - -(release-v9-10-feature-release)= -## Release v9.10 - [Feature Release](https://docs.mattermost.com/upgrade/release-definitions.html#feature-release) - -- **9.10.3, released 2024-09-26** - - Mattermost v9.10.3 contains low to medium severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). - - Pre-packaged Playbooks plugin [v1.40.0](https://github.com/mattermost/mattermost-plugin-playbooks/releases/tag/v1.40.0). - - Mattermost v9.10.3 contains no database or functional changes. -- **9.10.2, released 2024-08-27** - - Mattermost v9.10.2 contains low to medium severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). - - Mattermost v9.10.2 contains no database or functional changes. -- **9.10.1, released 2024-07-22** - - Mattermost v9.10.1 contains low to medium severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). - - Pre-packaged Mattermost Copilot plugin version [v0.8.3](https://github.com/mattermost/mattermost-plugin-ai/releases/tag/v0.8.3). - - Ensured that the web app only requests notification permissions when needed. Fixed an issue with desktop notifications not being sent on Safari [MM-59416](https://mattermost.atlassian.net/browse/MM-59416). - - Fixed an issue where the app crashed on iOS Safari [MM-59296](https://mattermost.atlassian.net/browse/MM-59296). - - Mattermost v9.10.1 contains no database or functional changes. -- **9.10.0, released 2024-07-16** - - Original 9.10.0 release. - -```{Important} -If you upgrade from a release earlier than v9.5, please read the other [Important Upgrade Notes](https://docs.mattermost.com/upgrade/important-upgrade-notes.html). -``` - -### Improvements - -See [this walkthrough video](https://mattermost.com/video/mattermost-v9-10-changelog/) on some of the improvements in our latest release below. - -#### User Interface (UI) - - Pre-packaged GitLab plugin version [v1.9.1](https://github.com/mattermost/mattermost-plugin-gitlab/releases/tag/v1.9.1). - - Pre-packaged Mattermost Copilot plugin version [v0.8.1](https://github.com/mattermost/mattermost-plugin-ai/releases/tag/v0.8.1). - - Pre-packaged Calls plugin version [v0.28.2](https://github.com/mattermost/mattermost-plugin-calls/releases/tag/v0.28.2). - - Re-designed the user profile popover and improved its performance. - - Added banner to prompt users to allow notification permissions when opening the app in web browsers. - - Increased the width of the profile picture setting to match other user settings. - - Improved screen reader support for the emoji picker. - - Improved the accessibility of plugin buttons in the channel header. - -#### Administration - - Extended ``PluginSiteStatsHandler`` to support more advanced visualization types. - - Stopped broadcasting ``channel_deleted/channel_restored`` messages from private channels to non-members. - -#### Performance - - Added page load time to client performance metrics. - - Added a metric to track time it takes for the Threads view to load. - - Added support for mobile client metrics. - - Increased the range of LCP metrics that can be measured. - - Added polling of ``getStatusesByIds`` and ``getProfilesByIds`` network calls. The interval of which is configurable with the ``UsersStatusAndProfileFetchingPollIntervalMilliseconds`` configuration variable. - - Added defer loading plugins scripts. - -### Bug Fixes - - Fixed an issue where the ``RefreshPostStats`` job could fail. - - Fixed an issue where attempting to create a team with the URL of an existing team showed the wrong error message. - - Fixed an issue where ``visibilitychange`` JavaScript browser event had not been added for updating the user's current timezone. - - Fixed an issue where the last admin in the system was allowed to be demoted. - - Fixed an issue where banners set by system administrators did not stack below system banners, and appeared underneath them instead. Existing system banners have remained unchanged. - - Fixed an issue with an incorrect wrapping of long words in numbered lists. - - Fixed an incorrect behavior of the image proxy when site URL is changed. - - Fixed an issue where cache invalidation messages for websocket connections were not being sent across the cluster, causing missed websocket events. - - Fixed ``EnableClientMetrics`` setting not being available in the System Console. - -### config.json -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. - -#### Changes to all plans: - - Under ``ExperimentalSettings`` in ``config.json``: - - Added ``UsersStatusAndProfileFetchingPollIntervalMilliseconds`` to configure the interval of ``getStatusesByIds`` and ``getProfilesByIds`` network calls. - -### API Changes - - Added a new plugin API endpoint ``GetUsersByIds`` to retrieve a list of users by their ids. - -### Go Version - - v9.10 is built with Go ``v1.21.8``. - -### Known Issues - - Searching stop words in quotation marks with Elasticsearch enabled returns more than just the searched terms. - - 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. - - The Playbooks left-hand sidebar doesn't update when a user is added to a run or playbook without a refresh. - - If a user isn't a member of a configured broadcast channel, posting a status update might fail without any error feedback. As a temporary workaround, join the configured broadcast channels, or remove those channels from the run configuration. - -### Contributors - - [abhijit-singh](https://github.com/abhijit-singh), [aeomin](https://translate.mattermost.com/user/aeomin), [agarciamontoro](https://github.com/agarciamontoro), [agnivade](https://github.com/agnivade), [ahmadJT](https://github.com/ahmadJT), [amyblais](https://github.com/amyblais), [andrleite](https://github.com/andrleite), [apshada](https://github.com/apshada), [Aryakoste](https://github.com/Aryakoste), [asaadmahmood](https://github.com/asaadmahmood), [AshishDhama](https://github.com/AshishDhama), [BenCookie95](https://github.com/BenCookie95), [BillAnderson304](https://github.com/BillAnderson304), [Boruus](https://translate.mattermost.com/user/Boruus), [BrandonS09](https://github.com/BrandonS09), [bruno-keiko](https://github.com/bruno-keiko), [calebroseland](https://github.com/calebroseland), [Camillarhi](https://github.com/Camillarhi), [catalintomai](https://github.com/catalintomai), [chessmadridista](https://github.com/chessmadridista), [ckaznable](https://github.com/ckaznable), [coltoneshaw](https://github.com/coltoneshaw), [cpoile](https://github.com/cpoile), [crspeller](https://github.com/crspeller), [ctlaltdieliet](https://translate.mattermost.com/user/ctlaltdieliet), [cwarnermm](https://github.com/cwarnermm), [devinbinnie](https://github.com/devinbinnie), [DHaussermann](https://github.com/DHaussermann), [DSchalla](https://github.com/DSchalla), [Eleferen](https://translate.mattermost.com/user/Eleferen), [emdecr](https://github.com/emdecr), [enahum](https://github.com/enahum), [enzowritescode](https://github.com/enzowritescode), [esarafianou](https://github.com/esarafianou), [EyeCantCU](https://github.com/EyeCantCU), [ezekielchow](https://github.com/ezekielchow), [fmartingr](https://github.com/fmartingr), [frankps](https://translate.mattermost.com/user/frankps), [gabrieljackson](https://github.com/gabrieljackson), [Gesare5](https://github.com/Gesare5), [hanzei](https://github.com/hanzei), [harshilsharma63](https://github.com/harshilsharma63), [hmhealey](https://github.com/hmhealey), [homerCOD](https://translate.mattermost.com/user/homerCOD), [ifoukarakis](https://github.com/ifoukarakis), [isacikgoz](https://github.com/isacikgoz), [jasonblais](https://github.com/jasonblais), [jespino](https://github.com/jespino), [johnsonbrothers](https://github.com/johnsonbrothers), [jprusch](https://github.com/jprusch), [JtheBAB](https://github.com/JtheBAB), [JulienTant](https://github.com/JulienTant), [kaakaa](https://github.com/kaakaa), [kayazeren](https://github.com/kayazeren), [Kshitij-Katiyar](https://github.com/Kshitij-Katiyar), [larkox](https://github.com/larkox), [lieut-data](https://github.com/lieut-data), [lindalumitchell](https://github.com/lindalumitchell), [lynn915](https://github.com/lynn915), [M-ZubairAhmed](https://github.com/M-ZubairAhmed), [majo](https://translate.mattermost.com/user/majo), [marianunez](https://github.com/marianunez), [maruTA-bis5](https://translate.mattermost.com/user/maruTA-bis5), [master7](https://translate.mattermost.com/user/master7), [matt-w99](https://github.com/matt-w99), [matthew-w](https://translate.mattermost.com/user/matthew-w), [matthewbirtch](https://github.com/matthewbirtch), [MattSilvaa](https://github.com/MattSilvaa), [mgdelacroix](https://github.com/mgdelacroix), [mickmister](https://github.com/mickmister), [mojahani](https://translate.mattermost.com/user/mojahani), [mvitale1989](https://github.com/mvitale1989), [nbruneau71250](https://github.com/nbruneau71250), [nickmisasi](https://github.com/nickmisasi), [phoinixgrr](https://github.com/phoinixgrr), [pvev](https://github.com/pvev), [raghavaggarwal2308](https://github.com/raghavaggarwal2308), [Rajat-Dabade](https://github.com/Rajat-Dabade), [sadohert](https://github.com/sadohert), [saturninoabril](https://github.com/saturninoabril), [sbishel](https://github.com/sbishel), [sri-byte](https://github.com/sri-byte), [stafot](https://github.com/stafot), [streamer45](https://github.com/streamer45), [ThrRip](https://github.com/ThrRip), [tnir](https://github.com/tnir), [toninis](https://github.com/toninis), [varghesejose2020](https://github.com/varghesejose2020), [wiggin77](https://github.com/wiggin77), [willypuzzle](https://github.com/willypuzzle), [yasserfaraazkhan](https://github.com/yasserfaraazkhan), [yomiadetutu1](https://github.com/yomiadetutu1), [zenocode-org](https://github.com/zenocode-org) - -(release-v9-9-feature-release)= -## Release v9.9 - [Feature Release](https://docs.mattermost.com/upgrade/release-definitions.html#feature-release) - -- **9.9.3, released 2024-08-27** - - Mattermost v9.9.3 contains low to medium severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). - - Mattermost v9.9.3 contains no database or functional changes. -- **9.9.2, released 2024-07-22** - - Mattermost v9.9.2 contains low to medium severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). - - Mattermost v9.9.2 contains no database or functional changes. -- **9.9.1, released 2024-07-02** - - Mattermost v9.9.1 contains low to high severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). - - Fixed an issue where banners set by system administrators did not stack below system banners, but rather appeared underneath them. Existing system banners have remained unchanged. - - Removed feature flag which prevented enabling ``MetricsSettings.EnableClientMetrics`` [MM-58823](https://mattermost.atlassian.net/browse/MM-58823). - - Added a page load time to the client performance metrics [MM-58359](https://mattermost.atlassian.net/browse/MM-58359). - - Fixed web app performance reports being marked as outdated after the user's computer woke up from sleep [MM-58772](https://mattermost.atlassian.net/browse/MM-58772). - - Increased range of LCP metrics and Load Event End metrics that can be measured [MM-59033](https://mattermost.atlassian.net/browse/MM-59033). - - Fixed an error caused by performance telemetry when using Firefox with ``beacon.enabled`` set to ``false`` [MM-58777](https://mattermost.atlassian.net/browse/MM-58777). - - Mattermost v9.9.1 contains no database or functional changes. -- **9.9.0, released 2024-06-14** - - Original 9.9.0 release. - -### Compatibility - - Updated minimum macOS version to 12+ and minimum Safari version to 17+. - -```{Important} -If you upgrade from a release earlier than v9.5, please read the other [Important Upgrade Notes](https://docs.mattermost.com/upgrade/important-upgrade-notes.html). -``` - -### Improvements - -See [this walkthrough video](https://mattermost.com/video/video-mattermost-v9-9-changelog/) on some of the improvements in our latest release below. - -#### User Interface (UI) - - Pre-packaged Calls plugin version [v0.27.0](https://github.com/mattermost/mattermost-plugin-calls/releases/tag/v0.27.0). - - Pre-packaged Jira plugin version [v4.1.1](https://github.com/mattermost/mattermost-plugin-jira/releases/tag/v4.1.1). - - Pre-packaged GitLab plugin version [v1.9.0](https://github.com/mattermost/mattermost-plugin-gitlab/releases/tag/v1.9.0). - - Pre-packaged Zoom plugin version [v1.8.0](https://github.com/mattermost/mattermost-plugin-zoom/releases/tag/v1.8.0). - - Updated the default themes to reduce eye strain (particularly on the dark themes). - - Added UI improvements to the core layout. - - Improved error text when inviting guests to a team. - - Increased the visibility Mattermost edition in-product when using the free edition. - - Added an **Unsupported** label to the Team/E0 editions in the product menu. - - Improved the look and feel of the **True/False** selector in the System Console. - - Updated the channel header layout to reduce height and simplify the UI. - -#### Administration - - Removed safety limit error message in compiled Team Edition and unlicensed Enterprise Edition deployments when message count exceeds 5 million posts. - - Adjusted safety limit error message to show when users exceed 5,000 in compiled Team Edition and Enterprise Edition deployments when enterprise scale and access control automation features are unavailable. ``ERROR_SAFE_LIMITS_EXCEEDED``. - - Improved the message length validation step in the ``mmctl import validate`` command. - - Added shell completion to ``mmctl user active`` and ``mmctl user deactivate``. - - Removed support for self-serve purchases of Mattermost Subscriptions in various flows, throughout Cloud and Self Hosted environments. - - Removed support for self-serve true up review submission in the **System Console**. - - Added streaming support to the file attachments import process. - - Added LDAP job command to mmctl. - - Made LDAP sync jobs more resilient against errors. - - Removed the ``PostPriority`` feature flag. - - Improved the error message of ``NotFound`` errors in store. - - Added support for post priority to incoming webhooks and outgoing webhook responses. - - Added a validation that the payload for an open Interactive Dialog request is valid according to the rules at https://developers.mattermost.com/integrate/plugins/interactive-dialogs/. - - Unblocked notification calls by using usernames instead of full names in case of a missing user profile. - - Increased the maximum password limit from 64 to 72 characters (``PasswordMaximumLength``). - -#### Performance - - Added the initial version of new client-side performance metrics to track web app performance and can be monitored in new [Grafana board](https://grafana.com/grafana/dashboards/21460-web-app-metrics/). - - Added a metric to track time it takes for the right-hand side to load. - - Improved js memory profile of status’s reducers. - - When a user receives a new post that is part of a thread from a root post in a channel they are not currently viewing, we do not fetch the complete root post and its thread posts immediately. However, we still store the newly received post. The root post and its thread posts are only fetched when the user navigates to that specific channel. - -### Bug Fixes - - Fixed an issue with ``aria-label`` for sidebar channel buttons. - - Fixed an issue where any remaining unclosed database RPC connections were not closed after a plugin shut down. - - Fixed an issue where the right-hand side stole the focus when coming back from threads or drafts. - - Fixed an issue where a proxy link was copied instead of the original image link when copying a post that included an embedded image. - - Fixed an issue where the user status would incorrectly get stuck to online after the user closed the tab. - - Fixed an issue where on some servers the user could not see the member count in the **Browse Channels** dialog. - - Fixed an issue with inline display of WebP images accessed through the public-link feature. - - Fixed an issue where it wasn’t clear that the ``mmctl import process --bypass-upload --local`` doesn't work if the server is in High Availability. - - Fixed an issue where the user status would incorrectly be set to offline without checking for connections in other nodes in an High Availability cluster. - - Fixed a longstanding issue where the @mention auto-complete could erase post text following the auto-completed @mention. - - Fixed an issue with status management to avoid missing notifications. - - Fixed an issue where audit events were not added for OAuth logins. - - Fixed an issue with the error check in the message export process. - - Fixed an issue where pasting in the post text box could not always paste without formatting. - - Fixed some plugin settings with defaults not changing value. - -### config.json -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. - -#### Changes to all plans: - - Under ``ExperimentalSettings`` in ``config.json``: - - Added ``DisableWakeUpReconnectHandler`` to disable the wake up on reconnect handler. - - Removed ``SelfHostedPurchase`` setting. - -#### Changes to the Enterprise plan: - - Under ``MetricsSettings`` in ``config.json``: - - Added a feature flag and a setting ``EnableClientMetrics`` to control new client performance metrics. - - Added a setting for notification metrics ``EnableNotificationMetrics``. - - Self-hosted system administrators can now configure all ``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. - -### Websocket Event Changes - - Changed the semantics of the ``mattermost_http_websockets_total`` metric to track all open WebSocket connections, regardless of whether they are authenticated. - - Added a ``origin_client`` label to the ``mattermost_http_websockets_total`` Prometheus metric. - -### Go Version - - v9.9 is built with Go ``v1.21.8``. - -### Open Source Components - - Removed ``@stripe/react-stripe-js`` and ``@stripe/stripe-js``, and added ``web-vitals`` at https://github.com/mattermost/mattermost. - -### Known Issues - - Some Cloud workspaces unexpectedly received emails about license expiration. - - Searching stop words in quotation marks with Elasticsearch enabled returns more than just the searched terms. - - 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. - - The Playbooks left-hand sidebar doesn't update when a user is added to a run or playbook without a refresh. - - If a user isn't a member of a configured broadcast channel, posting a status update might fail without any error feedback. As a temporary workaround, join the configured broadcast channels, or remove those channels from the run configuration. - -### Contributors - - [agarciamontoro](https://github.com/agarciamontoro), [agnivade](https://github.com/agnivade), [amyblais](https://github.com/amyblais), [andrleite](https://github.com/andrleite), [arush-vashishtha](https://github.com/arush-vashishtha), [asaadmahmood](https://github.com/asaadmahmood), [ayusht2810](https://github.com/ayusht2810), [azigler](https://github.com/azigler), [BenCookie95](https://github.com/BenCookie95), [bndn](https://translate.mattermost.com/user/bndn), [calebroseland](https://github.com/calebroseland), [coltoneshaw](https://github.com/coltoneshaw), [cpoile](https://github.com/cpoile), [crspeller](https://github.com/crspeller), [ctlaltdieliet](https://translate.mattermost.com/user/ctlaltdieliet), [cwarnermm](https://github.com/cwarnermm), [devinbinnie](https://github.com/devinbinnie), [DHaussermann](https://github.com/DHaussermann), [Eleferen](https://translate.mattermost.com/user/Eleferen), [emdecr](https://github.com/emdecr), [enahum](https://github.com/enahum), [enzowritescode](https://github.com/enzowritescode), [fasal26](https://github.com/fasal26), [fmartingr](https://github.com/fmartingr), [gabrieljackson](https://github.com/gabrieljackson), [grundleborg](https://github.com/grundleborg), [hanzei](https://github.com/hanzei), [harshilsharma63](https://github.com/harshilsharma63), [hmhealey](https://github.com/hmhealey), [ifoukarakis](https://github.com/ifoukarakis), [isacikgoz](https://github.com/isacikgoz), [jespino](https://github.com/jespino), [joakim.rivera](https://translate.mattermost.com/user/joakim.rivera), [johnsonbrothers](https://github.com/johnsonbrothers), [jprusch](https://github.com/jprusch), [JulienTant](https://github.com/JulienTant), [kaakaa](https://github.com/kaakaa), [Kshitij-Katiyar](https://github.com/Kshitij-Katiyar), [larkox](https://github.com/larkox), [lieut-data](https://github.com/lieut-data), [M-ZubairAhmed](https://github.com/M-ZubairAhmed), [majo](https://translate.mattermost.com/user/majo), [marianunez](https://github.com/marianunez), [marlenekoh](https://github.com/marlenekoh), [master7](https://translate.mattermost.com/user/master7), [matt-w99](https://github.com/matt-w99), [matthew-w](https://translate.mattermost.com/user/matthew-w), [matthewbirtch](https://github.com/matthewbirtch), [MeHow25](https://github.com/MeHow25), [mgdelacroix](https://github.com/mgdelacroix), [mickmister](https://github.com/mickmister), [mojahani](https://translate.mattermost.com/user/mojahani), [morgancz](https://github.com/morgancz), [mvitale1989](https://github.com/mvitale1989), [nickmisasi](https://github.com/nickmisasi), [nixusUM](https://github.com/nixusUM), [orimaimon](https://github.com/orimaimon), [phoinixgrr](https://github.com/phoinixgrr), [piotr-lasota](https://github.com/piotr-lasota), [pjenicot](https://translate.mattermost.com/user/pjenicot), [pmokeev](https://github.com/pmokeev), [rOt779kVceSgL](https://translate.mattermost.com/user/rOt779kVceSgL), [saturninoabril](https://github.com/saturninoabril), [sbishel](https://github.com/sbishel), [spirosoik](https://github.com/spirosoik), [sri-byte](https://github.com/sri-byte), [stafot](https://github.com/stafot), [streamer45](https://github.com/streamer45), [stylianosrigas](https://github.com/stylianosrigas), [svelle](https://github.com/svelle), [tarrow](https://github.com/tarrow), [ThrRip](https://github.com/ThrRip), [tnir](https://github.com/tnir), [toninis](https://github.com/toninis), [umrkhn](https://github.com/umrkhn), [varghesejose2020](https://github.com/varghesejose2020), [vish9812](https://github.com/vish9812), [wiggin77](https://github.com/wiggin77), [yasserfaraazkhan](https://github.com/yasserfaraazkhan), [yomiadetutu1](https://github.com/yomiadetutu1), [zsrv](https://github.com/zsrv) - -(release-v9-8-feature-release)= -## Release v9.8 - Feature Release - -- **9.8.3, released 2024-07-22** - - Mattermost v9.8.3 contains low to medium severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). - - Mattermost v9.8.3 contains no database or functional changes. -- **9.8.2, released 2024-07-02** - - Mattermost v9.8.2 contains low to high severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). - - Fixed an issue where banners set by system administrators did not stack below system banners, but rather appeared underneath them. Existing system banners have remained unchanged. - - Mattermost v9.8.2 contains no database or functional changes. -- **9.8.1, released 2024-06-03** - - Mattermost v9.8.1 contains low to high severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). - - Removed a safety limit error message in compiled Team Edition and unlicensed Enterprise Edition deployments when message count exceeds 5 million posts. - - Fixed an issue with some plugin settings with defaults not changing value. - - Mattermost v9.8.1 contains no database or functional changes. -- **9.8.0, released 2024-05-16** - - Original 9.8.0 release. - -### Compatibility - - Updated minimum required Edge and Chrome versions to 122+. - -```{Important} -If you upgrade from a release earlier than v9.7, please read the other [Important Upgrade Notes](https://docs.mattermost.com/upgrade/important-upgrade-notes.html). -``` - -### Improvements - -See [this walkthrough video](https://mattermost.com/video/mattermost-v9-8-changelog/) on some of the improvements in our latest release below. - -#### User Interface (UI) - - Pre-packaged Playbooks version [v1.39.3](https://github.com/mattermost/mattermost-plugin-playbooks/releases/tag/v1.39.3). - - Pre-packaged GitLab plugin version [v1.8.1](https://github.com/mattermost/mattermost-plugin-gitlab/releases/tag/v1.8.1). - - Pre-packaged Calls version [v0.26.2](https://github.com/mattermost/mattermost-plugin-calls/releases/tag/v0.26.2). - - Combined Desktop and Mobile notifications in the user settings modal. - - Added a **Don't Clear** option for Do Not Disturb. - - Enhanced the user interface for channel introductions. - - Added an ephemeral message for non-team member mentions in channels. - - Added emoji tooltips on hover in post message. - - Made the appearance of several tooltips more consistent. - - Updated theme colors for onboarding tour points. - - Updated the right-hand side Thread view to use relative timestamps to be more consistent with the global Threads view. - - Added a total reply count to the right-hand side thread view. - -#### Administration - - Added safety limit error message in compiled Team Edition and Enterprise Edition deployments when enterprise scale and access control automation features are unavailable, and message count exceeds 5 million posts. ERROR_SAFE_LIMITS_EXCEEDED. - - Downloading a support packet is now extensible with plugins. If a plugin can add content to the support packet, it will be displayed in the commercial support modal. Administrators will have the option to include/exclude that from the support package. - - Upgraded Nodejs to v20.11. - - Added the backend for Channel Bookmarks (disabled by default). Added Channel Bookmarks permissions to the channel user role and to the channel moderation system. - - Added Channel Bookmarks permissions to the channel user role and to the channel moderation system. - - Added progress logs for attachments in bulk exports. - - Added a **System Console** option to rebuild Elasticsearch channels indexes. - - Obfuscated ``ReplicaLagSettings`` in the Support Packet. - - Improved license loading errors. - - Updated the keycloak docker configs and added a ``make`` command. - - Removed unused ``IsOAuth`` field from ``AppError``. - - ``bool`` is now used for ``license_is_trial`` in the Support Packet. - - Bulk export: added functionality to export roles and permissions schemes. - - A new flag (``extract-content``) was added to the mmctl import process that allows the server to skip content extraction during the import phase. - -### API Changes - - Added a create channel bookmark endpoint at ``/api/v4/channels/{channel_id}/bookmarks``. - - Added additional query params to channel endpoints to include channel bookmarks. - - Added update channel bookmark endpoint at ``/api/v4/channels/{channel_id}/bookmarks/{bookmark_id}``. - - Added list channel bookmarks endpoint at ``/api/v4/channels/{channel_id}/bookmarks``. - - Added delete channel bookmark endpoint at ``/api/v4/channels/{channel_id}/bookmarks/{bookmark_id}``. - - Added update channel bookmark sort order endpoint at ``/api/v4/channels/{channel_id}/bookmarks/{bookmark_id}/sort_order``. - - Exposed a local-mode only API for reattaching plugins, primarily to facilitate mock-free unit testing. - - Exposed ``UpdateUserRoles`` in ``pluginapi``. - - Exposed ``pluginapi.ProfileImageBytes`` to simplify bot setup from a plugin. - - For ``POST /channels``, added a validation for ``display_name`` to not pass validation if the display name is empty. - -### Bug Fixes - - Fixed an issue with context cancellation for integration requests. - - Fixed an issue preventing the retrieval of SAML metadata. - - Fixed an issue causing an empty channel switcher after converting a group message to a private channel. - - Fixed an issue where System Admins were not allowed to LDAP sync SAML users when ``SamlSettings.EnableSyncWithLdap`` was set to **true**. - - Fixed an issue with markdown in the AD job status table. - - Fixed an issue with a control character in the group list modal. - - Fixed an issue where the auto-complete channels API returned archived channels in response. - - Fixed a crash issue in the **System Console**. - - Fixed an issue where links included in notifications were truncated and not clickable. - - Fixed using local requests instead of HTTP requests in the flow library. - - Fixed an issue where ``support_packet.yaml`` wasn’t generated even if an error occurred. - - Fixed an issue where outgoing webhooks did not trigger when using multiple callback URLs. - - Fixed an issue where it was not possible to clear plugin settings with a default value in the **System Console**. - - Fixed an issue where ``MaxUsersForStatistics`` wasn’t ignored when generating a Support Packet. - - Fixed an issue where the ``EnsureBot`` function did not recreate the bot if it had been manually deleted. - - Fixed an issue where users couldn't look up a user by their ID in the **System Console** anymore. - - Fixed an accessibility issue where the focus didn’t go back to the originating button when a modal was closed. - - Fixed an issue where end users were not allowed to fetch the group members list of groups that allow ``@-mentions``. - -### config.json -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. - -#### Changes to all plans: - - Under ``FileSettings`` in ``config.json``: - - Added ``AmazonS3UploadPartSizeBytes`` and ``ExportAmazonS3UploadPartSizeBytes`` to control the part size used to upload files to an S3 store. - - Under ``ServiceSettings`` in ``config.json``: - - Increased the default payload size limit (``MaximumPayloadSizeBytes``) from 100 kB to 300 kB. Existing servers need to manually update this value. - - Under ``ClusterSettings`` in ``config.json``: - - Removed unused settings ``StreamingPort``, ``MaxIdleConns``, ``MaxIdleConnsPerHost`` and ``IdleConnTimeoutMilliseconds``. - - #### Changes to Professional and Enterprise plans: - - Under ``ExperimentalSettings`` in ``config.json``: - - Removed the ``UseNewSAMLLibrary`` experimental setting. - -### Go Version - - v9.8 is built with Go ``v1.21.8``. - -### Known Issues - - Status may sometimes get stuck as **Away** or **Offline** with IP Hash turned off. - - Searching stop words in quotation marks with Elasticsearch enabled returns more than just the searched terms. - - 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. - - The Playbooks left-hand sidebar doesn't update when a user is added to a run or playbook without a refresh. - - If a user isn't a member of a configured broadcast channel, posting a status update might fail without any error feedback. As a temporary workaround, join the configured broadcast channels, or remove those channels from the run configuration. - -### Contributors - - [agarciamontoro](https://github.com/agarciamontoro), [agnivade](https://github.com/agnivade), [Amir-Helali](https://github.com/Amir-Helali), [amyblais](https://github.com/amyblais), [andrleite](https://github.com/andrleite), [angeloskyratzakos](https://github.com/angeloskyratzakos), [annaos](https://github.com/annaos), [apshada](https://github.com/apshada), [Aryakoste](https://github.com/Aryakoste), [asaadmahmood](https://github.com/asaadmahmood), [aszakacs](https://github.com/aszakacs), [BarbUk](https://github.com/BarbUk), [BenCookie95](https://github.com/BenCookie95), [Blaieet](https://github.com/Blaieet), [calebroseland](https://github.com/calebroseland), [coltoneshaw](https://github.com/coltoneshaw), [cpoile](https://github.com/cpoile), [crspeller](https://github.com/crspeller), [ctlaltdieliet](https://translate.mattermost.com/user/ctlaltdieliet), [cwarnermm](https://github.com/cwarnermm), [cyrusjc](https://github.com/cyrusjc), [daran9](https://github.com/daran9), [devharipragaz007](https://github.com/devharipragaz007), [devinbinnie](https://github.com/devinbinnie), [dsspence](https://github.com/dsspence), [Eleferen](https://translate.mattermost.com/user/Eleferen), [EltonGohJH](https://github.com/EltonGohJH), [emdecr](https://github.com/emdecr), [enahum](https://github.com/enahum), [ezekielchow](https://github.com/ezekielchow), [fmartingr](https://github.com/fmartingr), [gabrieljackson](https://github.com/gabrieljackson), [gitairman](https://github.com/gitairman), [grundleborg](https://github.com/grundleborg), [hanzei](https://github.com/hanzei), [harshilsharma63](https://github.com/harshilsharma63), [hmhealey](https://github.com/hmhealey), [hossain-sazzad](https://github.com/hossain-sazzad), [ifoukarakis](https://github.com/ifoukarakis), [inconnu1](https://github.com/inconnu1), [isacikgoz](https://github.com/isacikgoz), [jasonblais](https://github.com/jasonblais), [jespino](https://github.com/jespino), [johnsonbrothers](https://github.com/johnsonbrothers), [jones](https://translate.mattermost.com/user/jones), [josephjose](https://github.com/josephjose), [jprusch](https://github.com/jprusch), [JulienTant](https://github.com/JulienTant), [jupenur](https://github.com/jupenur), [jwilander](https://github.com/jwilander), [kaakaa](https://github.com/kaakaa), [kaoski](https://github.com/kaoski), [Karimaljandali](https://github.com/Karimaljandali), [kayazeren](https://github.com/kayazeren), [KrisSiegel](https://github.com/KrisSiegel), [Kshitij-Katiyar](https://github.com/Kshitij-Katiyar), [larkox](https://github.com/larkox), [lbr88](https://github.com/lbr88), [lieut-data](https://github.com/lieut-data), [lindalumitchell](https://github.com/lindalumitchell), [lynn915](https://github.com/lynn915), [M-ZubairAhmed](https://github.com/M-ZubairAhmed), [mahdiirar](https://github.com/mahdiirar), [majo](https://translate.mattermost.com/user/majo), [manojmalik20](https://github.com/manojmalik20), [master7](https://translate.mattermost.com/user/master7), [matt-w99](https://github.com/matt-w99), [matthew-w](https://translate.mattermost.com/user/matthew-w), [matthewbirtch](https://github.com/matthewbirtch), [MeHow25](https://github.com/MeHow25), [mentz](https://translate.mattermost.com/user/mentz), [mgdelacroix](https://github.com/mgdelacroix), [mickmister](https://github.com/mickmister), [milotype](https://github.com/milotype), [movion](https://github.com/movion), [mvitale1989](https://github.com/mvitale1989), [nickmisasi](https://github.com/nickmisasi), [Nityanand13](https://github.com/Nityanand13), [nmnj](https://translate.mattermost.com/user/nmnj), [Obbi89](https://github.com/Obbi89), [pacop](https://github.com/pacop), [phoinixgrr](https://github.com/phoinixgrr), [Pkarle](https://github.com/Pkarle), [poppfredslund](https://translate.mattermost.com/user/poppfredslund), [potatogim](https://github.com/potatogim), [raghavaggarwal2308](https://github.com/raghavaggarwal2308), [rahimrahman](https://github.com/rahimrahman), [rOt779kVceSgL](https://translate.mattermost.com/user/rOt779kVceSgL), [RS-labhub](https://github.com/RS-labhub), [Rutam21](https://github.com/Rutam21), [s-krishnaraju](https://github.com/s-krishnaraju), [saturninoabril](https://github.com/saturninoabril), [sbishel](https://github.com/sbishel), [Sharuru](https://github.com/Sharuru), [sri-byte](https://github.com/sri-byte), [stafot](https://github.com/stafot), [streamer45](https://github.com/streamer45), [stylianosrigas](https://github.com/stylianosrigas), [Syed-Ali-Abbas-Zaidi](https://github.com/Syed-Ali-Abbas-Zaidi), [tanmaythole](https://github.com/tanmaythole), [ThrRip](https://github.com/ThrRip), [tnir](https://github.com/tnir), [toninis](https://github.com/toninis), [topolovac](https://github.com/topolovac), [varghesejose2020](https://github.com/varghesejose2020), [wetneb](https://github.com/wetneb), [wiersgallak](https://github.com/wiersgallak), [wiggin77](https://github.com/wiggin77), [yasserfaraazkhan](https://github.com/yasserfaraazkhan), [yomiadetutu1](https://github.com/yomiadetutu1), [zsrv](https://github.com/zsrv) - ----- - -(release-v9-7-feature-release)= -## Release v9.7 - [Feature Release](https://docs.mattermost.com/upgrade/release-definitions.html#feature-release) - -- **9.7.6, released 2024-07-02** - - Mattermost v9.7.6 contains low to high severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). - - Fixed an issue where banners set by system administrators did not stack below system banners, but rather appeared underneath them. Existing system banners have remained unchanged. - - Mattermost v9.7.6 contains no database or functional changes. -- **9.7.5, released 2024-06-03** - - Mattermost v9.7.5 contains low to high severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). - - Mattermost v9.7.5 contains no database or functional changes. -- **9.7.4, released 2024-05-15** - - Fixed an issue with context cancellation for integration requests [MM-58019](https://mattermost.atlassian.net/browse/MM-58019). - - Fixed some plugin settings with defaults not changing value [MM-58102](https://mattermost.atlassian.net/browse/MM-58102). - - Mattermost v9.7.4 contains no database or functional changes. -- **9.7.3, released 2024-04-30** - - Fixed an issue where creating a Direct Message channel with synthetic users failed [MM-58019](https://mattermost.atlassian.net/browse/MM-58019). - - Mattermost v9.7.3 contains no database or functional changes. -- **9.7.2, released 2024-04-25** - - Mattermost v9.7.2 contains low to medium severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). - - Mattermost v9.7.2 contains no database or functional changes. - - Pre-packaged Playbooks version [v1.39.3](https://github.com/mattermost/mattermost-plugin-playbooks/releases/tag/v1.39.3). - - Increased the default payload size limit (``MaximumPayloadSizeBytes``) from 100 kB to 300 kB. Existing servers need to manually update this value. - - Fixed an issue where it was not possible to clear the plugin settings with a default value in the System Console. -- **9.7.1, released 2024-04-16** - - Fixed an issue with a noisy log entry for permalink post notifications. - - Mattermost v9.7.1 contains no database or functional changes. -- **9.7.0, released 2024-04-16** - - Original 9.7.0 release. - -```{Important} -If you upgrade from a release earlier than v9.6, please read the other [Important Upgrade Notes](https://docs.mattermost.com/upgrade/important-upgrade-notes.html). -``` - -### Improvements - -See [this walkthrough video](https://mattermost.com/video/mattermost-v9-7-changelog/) on some of the improvements in our latest release below. - -#### User Interface (UI) - - Added Mattermost [AI plugin](https://github.com/mattermost/mattermost-plugin-ai) to pre-packaged plugins. - - Pre-packaged Calls version [v0.25.1](https://github.com/mattermost/mattermost-plugin-calls/releases/tag/v0.25.1). - - Pre-packaged Playbooks version [v1.39.2](https://github.com/mattermost/mattermost-plugin-playbooks/releases/tag/v1.39.2). - - Pre-packaged GitHub plugin version [v2.2.0](https://github.com/mattermost/mattermost-plugin-github/releases/tag/v2.2.0). - - The first emoji is now auto-selected in the emoji picker. - - Added Markdown support for batched email notifications. - - Users’ timezone is now used in batched email notifications. - - Removed a conflicting class (``help-text``) from the interactive dialog field description to resolve the black text color in the dark theme. - - Updated the user interface of **Team Settings** modal. - - Promoted Simplified Chinese to Beta, and downgraded Hungarian and Spanish languages to Beta. - - Improved the opening animation of the user settings modal. - -#### Administration - - Upgraded ``@mattermost/client`` and ``@mattermost/types`` to support TypeScript v5.x. - - Enforced safety limit in compiled Team Edition and Enterprise Edition deployments when enterprise scale and access control automation features are unavailable, and when the count of users who are registered, but not deactivated, exceeds 11,000. ERROR_SAFE_LIMITS_EXCEEDED. - - Dropped pre-packaged plugins for unsupported OS and architectures. - - Implemented a new **Export Settings** page in the **System Console** to allow Cloud administrators to customize their dedicated export S3 buckets. - - LDAP job details are no longer shown until the job runs. - - Added more logging to the ``NotificationsLog``. - - A message is now logged when a user tries to log in using an incorrect password. - - Posts from deactivated users are now included in **Direct Message** channel exports. Also the ``--include-archived-channels`` flag is now respected for **Direct Message** channels. - - Changed the cache headers for file endpoints to cache privately for 24 hours, instead of not caching at all. - - Improved the performance of the ElasticSearch indexing job in PostgreSQL installations. - - Moved following functions from server to public utils: - - ``ResetReadTimeout`` - - ``AppendMultipleStatementsFlag`` - - ``SetupConnection`` - - ``SanitizeDataSource`` - -#### mmctl - - mmctl can now be used to download a Support Packet using ``--local mode``. - - mmctl system ping will now return detailed server status even if the server status is unhealthy. - -### Bug Fixes - - Fixed an issue where the Desktop App login flow would erroneously show the landing page for first time users. - - Fixed an issue where a right-hand side card was not reloaded when the card body was updated. - - Fixed an issue where ``en-AU`` language selection was not allowed. - - Fixed an issue with the position of text in the default profile picture. - - Fixed an issue with the group search to parse the display name. - - Fixed an issue where items with longer text did not widen the user guide dropdown to its max-width. - - Fixed an issue where the configuration could not be updated from the **System Console** in cloud environments. - -### config.json -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. - -#### Changes to all plans: - - Under ``CloudSettings`` in ``config.json``: - - Added a new configuration setting ``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. - -### Open Source Components - - Added ``stylelint`` to https://github.com/mattermost/mattermost/. - -### Go Version - - v9.7 is built with Go ``v1.20.7``. - -### Known Issues - - 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. - - 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. - - The Playbooks left-hand sidebar doesn't update when a user is added to a run or playbook without a refresh. - - If a user isn't a member of a configured broadcast channel, posting a status update might fail without any error feedback. As a temporary workaround, join the configured broadcast channels, or remove those channels from the run configuration. - -### Contributors - - [2017Yasu](https://github.com/2017Yasu), [agarciamontoro](https://github.com/agarciamontoro), [agnivade](https://github.com/agnivade), [amyblais](https://github.com/amyblais), [andriumm](https://github.com/andriumm), [angeloskyratzakos](https://github.com/angeloskyratzakos), [annaos](https://github.com/annaos), [apshada](https://github.com/apshada), [asaadmahmood](https://github.com/asaadmahmood), [ayusht2810](https://github.com/ayusht2810), [azigler](https://github.com/azigler), [BenCookie95](https://github.com/BenCookie95), [Blaieet](https://github.com/Blaieet), [calebroseland](https://github.com/calebroseland), [cpoile](https://github.com/cpoile), [crspeller](https://github.com/crspeller), [ctlaltdieliet](https://translate.mattermost.com/user/ctlaltdieliet), [cwarnermm](https://github.com/cwarnermm), [devinbinnie](https://github.com/devinbinnie), [dipaksinha1](https://github.com/dipaksinha1), [doc-sheet](https://github.com/doc-sheet), [Eleferen](https://translate.mattermost.com/user/Eleferen), [emdecr](https://github.com/emdecr), [enahum](https://github.com/enahum), [ezekielchow](https://github.com/ezekielchow), [gabrieljackson](https://github.com/gabrieljackson), [grundleborg](https://github.com/grundleborg), [hannaparks](https://github.com/hannaparks), [hanzei](https://github.com/hanzei), [harshilsharma63](https://github.com/harshilsharma63), [hereje](https://github.com/hereje), [hmhealey](https://github.com/hmhealey), [hossain-sazzad](https://github.com/hossain-sazzad), [ifoukarakis](https://github.com/ifoukarakis), [isacikgoz](https://github.com/isacikgoz), [iyampaul](https://github.com/iyampaul), [jasonblais](https://github.com/jasonblais), [jespino](https://github.com/jespino), [johndavidlugtu](https://github.com/johndavidlugtu), [johnsonbrothers](https://github.com/johnsonbrothers), [jones](https://translate.mattermost.com/user/jones), [jprusch](https://github.com/jprusch), [JulienTant](https://github.com/JulienTant), [jwilander](https://github.com/jwilander), [kaakaa](https://github.com/kaakaa), [kayazeren](https://github.com/kayazeren), [Kshitij-Katiyar](https://github.com/Kshitij-Katiyar), [larkox](https://github.com/larkox), [lieut-data](https://github.com/lieut-data), [lindalumitchell](https://github.com/lindalumitchell), [Linkinlog](https://github.com/Linkinlog), [lynn915](https://github.com/lynn915), [M-ZubairAhmed](https://github.com/M-ZubairAhmed), [majo](https://translate.mattermost.com/user/majo), [marianunez](https://github.com/marianunez), [master7](https://translate.mattermost.com/user/master7), [matthew-w](https://translate.mattermost.com/user/matthew-w), [matthewbirtch](https://github.com/matthewbirtch), [mickmister](https://github.com/mickmister), [morgancz](https://github.com/morgancz), [mozi47](https://github.com/mozi47), [mvitale1989](https://github.com/mvitale1989), [nab-77](https://github.com/nab-77), [nachtjasmin](https://github.com/nachtjasmin), [natalie-hub](https://github.com/natalie-hub), [neflyte](https://github.com/neflyte), [nickmisasi](https://github.com/nickmisasi), [phoinixgrr](https://github.com/phoinixgrr), [poppfredslund](https://translate.mattermost.com/user/poppfredslund), [pvev](https://github.com/pvev), [raghavaggarwal2308](https://github.com/raghavaggarwal2308), [RyoKub](https://github.com/RyoKub), [saturninoabril](https://github.com/saturninoabril), [sbishel](https://github.com/sbishel), [Sharuru](https://translate.mattermost.com/user/Sharuru), [sinansonmez](https://github.com/sinansonmez), [sri-byte](https://github.com/sri-byte), [stafot](https://github.com/stafot), [streamer45](https://github.com/streamer45), [stylianosrigas](https://github.com/stylianosrigas), [Syed-Ali-Abbas-Zaidi](https://github.com/Syed-Ali-Abbas-Zaidi), [tanmaythole](https://github.com/tanmaythole), [ThrRip](https://github.com/ThrRip), [toninis](https://github.com/toninis), [varghesejose2020](https://github.com/varghesejose2020), [vish9812](https://github.com/vish9812), [vishal-rathod-07](https://github.com/vishal-rathod-07), [wiersgallak](https://github.com/wiersgallak), [wiggin77](https://github.com/wiggin77), [Wing0515](https://github.com/Wing0515), [yasserfaraazkhan](https://github.com/yasserfaraazkhan), [yomiadetutu1](https://github.com/yomiadetutu1) - ----- - -(release-v9-6-feature-release)= -## Release v9.6 - [Feature Release](https://docs.mattermost.com/upgrade/release-definitions.html#feature-release) - -- **9.6.3, released 2024-06-03** - - Mattermost v9.6.3 contains low to high severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). - - Fixed an issue with some plugin settings with defaults not changing value. - - Mattermost v9.6.3 contains no database or functional changes. -- **9.6.2, released 2024-04-25** - - Mattermost v9.6.2 contains low to medium severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). - - Mattermost v9.6.2 contains no database or functional changes. - - Pre-packaged Playbooks version [v1.39.3](https://github.com/mattermost/mattermost-plugin-playbooks/releases/tag/v1.39.3). - - Fixed an issue where it was not possible to clear the plugin settings with a default value in the System Console. -- **9.6.1, released 2024-03-26** - - Mattermost v9.6.1 contains low to medium severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). - - Mattermost v9.6.1 contains no database or functional changes. - - Fixed an issue where the configuration could not be updated from the System Console in cloud environments. -- **9.6.0, released 2024-03-15** - - Original 9.6.0 release. - -### Compatibility - - Updated minimum required Edge and Chrome versions to 120+. - -```{Important} -If you upgrade from a release earlier than v9.5, please read the other [Important Upgrade Notes](https://docs.mattermost.com/upgrade/important-upgrade-notes.html). -``` - -### Improvements - -See [this walkthrough video](https://mattermost.com/video/changelog-v9-6/) on some of the improvements in our latest release below. - -#### User Interface (UI) - - Pre-packaged Calls version [v0.24.0](https://github.com/mattermost/mattermost-plugin-calls/releases/tag/v0.24.0). - - Pre-packaged GitLab plugin version [v1.8.0](https://github.com/mattermost/mattermost-plugin-gitlab/releases/tag/v1.8.0). - - Added the [Outgoing OAuth Connections](https://developers.mattermost.com/integrate/slash-commands/outgoing-oauth-connections/) integration type. - - Re-designed the **System Console > User Management** screen, and added the ability to batch export users in CSV format (Professional and Enterprise plans). On MySQL, users cannot view live results of the batch export in the user interface. - - Improved the appearance of profile/account menus. - - Added support for checkbox types in the **System Console** settings. - - Added support for WebP image previews in the web app similar to PNG and other image formats. - - Several pre-packaged plugins were removed. - -#### Administration - - Removed some unused Redux actions and reducers, including ``state.entities.posts.selectedPostId``. - - Limited the number of user preference updates to 10 per call. - - Clarified that the LDAP profile picture setting is optional. - -#### mmctl - - Extended mmctl with support for user preferences. - -### Bug Fixes - - Fixed an issue with switching to a **Direct Message** channel with a shared channel user (user from another server). - - Fixed an issue with extra space getting added to code blocks in search results. - - Fixed an issue where deactivated members were not included in a favorited **Direct Message** channel export. - - Fixed an issue where password strength settings wouldn't be disabled if they were set through environment variables. - - Fixed an issue where post mentions would grow outside the viewport on small devices. - - Fixed an issue with draft removal after deleting the post. - - Fixed a markdown issue where, on some occasions, extra space was found before a list. - - Fixed an issue where a sender to a custom group would also receive the message notification themselves. - - Fixed a web app crash when a System Admin clicked on a link to a private channel that they were not a member of. - - Fixed ``ChannelHasBeenCreated`` plugin hook not being called when a group channel was created. - - Fixed thread notifications so that if a user had **Thread Reply Notifications** disabled for your account and **Automatically follow threads in this channel** enabled for a channel, the user wouldn't receive thread notifications for that channel per global setting. - -### 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 the Enterprise plan: - - Under ``ServiceSettings`` in ``config.json``: - - Added ``EnableOutgoingOAuthConnections`` configuration setting for Outgoing OAuth Connections integration type. - -### Open Source Components - - Added ``@floating-ui/react``, and removed ``@floating-ui/react-dom`` and ``@floating-ui/react-dom-interactions`` from https://github.com/mattermost/mattermost/. - -### Go Version - - v9.6 is built with Go ``v1.20.7``. - -### Known Issues - - Users' initial status is not always loaded correctly [MM-56966](https://mattermost.atlassian.net/browse/MM-56966). - - 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. - - 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. - - The Playbooks left-hand sidebar doesn't update when a user is added to a run or playbook without a refresh. - - If a user isn't a member of a configured broadcast channel, posting a status update might fail without any error feedback. As a temporary workaround, join the configured broadcast channels, or remove those channels from the run configuration. - -### Contributors - - [abdesslamhouioui](https://github.com/abdesslamhouioui), [agarciamontoro](https://github.com/agarciamontoro), [agnivade](https://github.com/agnivade), [Alpha-4](https://github.com/Alpha-4), [amyblais](https://github.com/amyblais), [andrleite](https://github.com/andrleite), [angeloskyratzakos](https://github.com/angeloskyratzakos), [apshada](https://github.com/apshada), [arush-vashishtha](https://github.com/arush-vashishtha), [asaadmahmood](https://github.com/asaadmahmood), [avas27JTG](https://github.com/avas27JTG), [ayusht2810](https://github.com/ayusht2810), [azigler](https://github.com/azigler), [BenCookie95](https://github.com/BenCookie95), [bewing](https://github.com/bewing), [calebroseland](https://github.com/calebroseland), [carydrew](https://github.com/carydrew), [Chlbek](https://translate.mattermost.com/user/Chlbek), [compiledsound](https://github.com/compiledsound), [cpatulea](https://github.com/cpatulea), [cpoile](https://github.com/cpoile), [crspeller](https://github.com/crspeller), [ctlaltdieliet](https://github.com/ctlaltdieliet), [cwarnermm](https://github.com/cwarnermm), [devinbinnie](https://github.com/devinbinnie), [DHaussermann](https://github.com/DHaussermann), [edu-ap](https://github.com/edu-ap), [Eleferen](https://translate.mattermost.com/user/Eleferen), [emdecr](https://github.com/emdecr), [enahum](https://github.com/enahum), [esarafianou](https://github.com/esarafianou), [ewwollesen](https://github.com/ewwollesen), [gabrieljackson](https://github.com/gabrieljackson), [gourav-varma](https://github.com/gourav-varma), [Gregesp](https://github.com/Gregesp), [grundleborg](https://github.com/grundleborg), [hannaparks](https://github.com/hannaparks), [hanzei](https://github.com/hanzei), [harshilsharma63](https://github.com/harshilsharma63), [hereje](https://github.com/hereje), [hmhealey](https://github.com/hmhealey), [iabdousd](https://github.com/iabdousd), [ifoukarakis](https://github.com/ifoukarakis), [isacikgoz](https://github.com/isacikgoz), [it33](https://github.com/it33), [jespino](https://github.com/jespino), [jlandells](https://github.com/jlandells), [johndavidlugtu](https://github.com/johndavidlugtu), [jones](https://translate.mattermost.com/user/jones), [jprusch](https://github.com/jprusch), [JulienTant](https://github.com/JulienTant), [juliovillalvazo](https://github.com/juliovillalvazo), [jwilander](https://github.com/jwilander), [kaakaa](https://github.com/kaakaa), [larkox](https://github.com/larkox), [lieut-data](https://github.com/lieut-data), [lucassabreu](https://github.com/lucassabreu), [lynn915](https://github.com/lynn915), [M-ZubairAhmed](https://github.com/M-ZubairAhmed), [majo](https://translate.mattermost.com/user/majo), [marianunez](https://github.com/marianunez), [master7](https://translate.mattermost.com/user/master7), [matt-w99](https://github.com/matt-w99), [matthew-w](https://translate.mattermost.com/user/matthew-w), [matthewbirtch](https://github.com/matthewbirtch), [mickmister](https://github.com/mickmister), [milotype](https://github.com/milotype), [MixeroTN](https://translate.mattermost.com/user/MixeroTN), [mjnagel](https://github.com/mjnagel), [morgancz](https://translate.mattermost.com/user/morgancz), [mvitale1989](https://github.com/mvitale1989), [nickmisasi](https://github.com/nickmisasi), [nokedajunky](https://github.com/nokedajunky), [olavinto](https://github.com/olavinto), [oOoBenoitoOo](https://github.com/oOoBenoitoOo), [phoinixgrr](https://github.com/phoinixgrr), [pvev](https://github.com/pvev), [raghavaggarwal2308](https://github.com/raghavaggarwal2308), [rOt779kVceSgL](https://translate.mattermost.com/user/rOt779kVceSgL), [sadohert](https://github.com/sadohert), [saturninoabril](https://github.com/saturninoabril), [sbishel](https://github.com/sbishel), [Sharuru](https://translate.mattermost.com/user/Sharuru), [sinansonmez](https://github.com/sinansonmez), [sohzm](https://github.com/sohzm), [sri-byte](https://github.com/sri-byte), [stafot](https://github.com/stafot), [streamer45](https://github.com/streamer45), [stylianosrigas](https://github.com/stylianosrigas), [svelle](https://github.com/svelle), [Syed-Ali-Abbas-Zaidi](https://github.com/Syed-Ali-Abbas-Zaidi), [TealWater](https://github.com/TealWater), [ThrRip](https://github.com/ThrRip), [titanventura](https://github.com/titanventura), [toninis](https://github.com/toninis), [trangology](https://github.com/trangology), [trivikr](https://github.com/trivikr), [tsabi](https://github.com/tsabi), [Utsav-Ladani](https://github.com/Utsav-Ladani), [varghesejose2020](https://github.com/varghesejose2020), [vidhisaini10](https://github.com/vidhisaini10), [wiggin77](https://github.com/wiggin77), [yasserfaraazkhan](https://github.com/yasserfaraazkhan), [yeoji](https://github.com/yeoji) - ----- - -(release-v9-5-extended-support-release)= -## Release v9.5 - [Extended Support Release](https://docs.mattermost.com/upgrade/release-definitions.html#extended-support-release-esr) - -- **9.5.14, released 2025-05-09** - - Upgraded logr dependency to v2.0.22 for multiple improvements and bug fixes. - - Mattermost v9.5.14 contains no database or functional changes. -- **9.5.13, released 2024-11-14** - - Mattermost v9.5.13 contains medium severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). - - Pre-packaged Calls plugin [v0.29.4](https://github.com/mattermost/mattermost-plugin-calls/releases/tag/v0.29.4). - - Mattermost v9.5.13 contains no database or functional changes. -- **9.5.12, released 2024-10-28** - - Mattermost v9.5.12 contains a high severity level security fix. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). - - Fixed desyncing issues with unreads between the team sidebar and the title bar [MM-54021](https://mattermost.atlassian.net/browse/MM-54021). - - Mattermost v9.5.12 contains no database or functional changes. -- **9.5.11, released 2024-10-10** - - Mattermost v9.5.11 contains low to medium severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). - - Fixed an issue with YouTube previews no longer being displayed [MM-60351](https://mattermost.atlassian.net/browse/MM-60351). - - Pre-packaged Calls plugin [v0.29.2](https://github.com/mattermost/mattermost-plugin-calls/releases/tag/v0.29.2). - - Improved the performance of LDAP sync jobs when group-contained teams and channels are used [MM-60253](https://mattermost.atlassian.net/browse/MM-60253). - - Mattermost v9.5.11 contains no database or functional changes. -- **9.5.10, released 2024-09-26** - - Mattermost v9.5.10 contains low to medium severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). - - Fixed racy use of session in ``NewWebConn`` [MM-60307](https://mattermost.atlassian.net/browse/MM-60307). - - Pre-packaged Playbooks plugin [v1.40.0](https://github.com/mattermost/mattermost-plugin-playbooks/releases/tag/v1.40.0). - - Mattermost v9.5.10 contains no database or functional changes. -- **9.5.9, released 2024-08-27** - - Mattermost v9.5.9 contains low to medium severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). - - Mattermost v9.5.9 contains no database or functional changes. -- **9.5.8, released 2024-07-22** - - Mattermost v9.5.8 contains low to medium severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). - - Mattermost v9.5.8 contains no database or functional changes. -- **9.5.7, released 2024-07-02** - - Mattermost v9.5.7 contains low to high severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). - - Fixed an issue where banners set by system administrators did not stack below system banners, but rather appeared underneath them. Existing system banners have remained unchanged. - - Added a new configuration setting ``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. - - Fixed an issue where the user status would incorrectly be set to offline without checking for connections in other nodes in an High Availability cluster [MM-57153](https://mattermost.atlassian.net/browse/MM-57153). - - Fixed an issue where users could not see the member count in the **Browse Channels** dialog on some servers [MM-56266](https://mattermost.atlassian.net/browse/MM-56266). - - Increased the maximum length of the ``Value`` column of the ``Preferences`` table [MM-57913](https://mattermost.atlassian.net/browse/MM-57913). - - Mattermost v9.5.7 contains no database or functional changes. -- **9.5.6, released 2024-06-03** - - Mattermost v9.5.6 contains low to high severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). - - Mattermost v9.5.6 contains no database or functional changes. -- **9.5.5, released 2024-05-15** - - Fixed an issue where the user status would incorrectly get stuck to online after the user closed their tab [MM-57885](https://mattermost.atlassian.net/browse/MM-57885). - - Mattermost v9.5.5 contains no database or functional changes. -- **9.5.4, released 2024-04-25** - - Mattermost v9.5.4 contains low to medium severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). - - Mattermost v9.5.4 contains no database or functional changes. - - Pre-packaged Playbooks version [v1.39.3](https://github.com/mattermost/mattermost-plugin-playbooks/releases/tag/v1.39.3). - - Increased the default payload size limit (``MaximumPayloadSizeBytes``) from 100 kB to 300 kB. Existing servers need to manually update this value. - - Fixed an issue with context cancellation for integration requests. - - Fixed an issue where end users were not allowed to fetch the group members list of groups that allow ``@-mentions``. -- **9.5.3, released 2024-03-26** - - Mattermost v9.5.3 contains low to medium severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). - - Mattermost v9.5.3 contains no database or functional changes. - - Improved the performance of the ElasticSearch indexing job in PostgreSQL installations. -- **9.5.2, released 2024-03-06** - - Mattermost v9.5.2 contains low to medium severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). - - Mattermost v9.5.2 contains no database or functional changes. - - Fixed ``ChannelHasBeenCreated`` plugin hook not being called when a group channel was created. -- **9.5.1, released 2024-02-16** - - Mattermost v9.5.1 contains low to high severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). - - Mattermost v9.5.1 contains no database or functional changes. -- **9.5.0, released 2024-02-16** - - Original 9.5.0 release. - -### Important Upgrade Notes - - We have stopped supporting MySQL v5.7 since it's at the end of life. We urge customers to upgrade their MySQL instance at their earliest convenience. - -```{Important} -If you upgrade from a release earlier than v9.4, please read the other [Important Upgrade Notes](https://docs.mattermost.com/upgrade/important-upgrade-notes.html). -``` - -### Improvements - -See [this walkthrough video](https://www.youtube.com/watch?v=b1M2BGGF578&feature=youtu.be) on some of the improvements in our latest release below. - -#### User Interface (UI) - - Pre-packaged Calls version [v0.23.1](https://github.com/mattermost/mattermost-plugin-calls/releases/tag/v0.23.1). - - Pre-packaged Jira plugin version [v4.1.0](https://github.com/mattermost/mattermost-plugin-jira/releases/tag/v4.1.0). - - Improved the behavior of suggestion boxes when changing the caret position. - - Changed the time for tomorrow in the **Do Not Disturb** timer and post reminder to refer to the next day at 9:00am instead of 24hrs from the time of activation. - - Updated message timestamp tooltips to include seconds. - - Added a new Wrangler feature to be able to move threads (Experimental). Moving threads requires a Professional/Enterprise license to activate. This feature is not yet recommended for production use. A new feature flag ``MoveThreadsEnabled`` was added and is default OFF. Changing this value to ON will enable the experimental **Move Threads** feature. - - Applied a wording change for active and activated users in the **System Console** user list. - - Applied a wording change for active and activated users in the **Team Statistics** page. - -#### Administration - - Added safety limit error message in compiled Team Edition and Enterprise Edition deployments when enterprise scale and access control automation features are unavailable and count of users who are registered and not deactivated exceeds 10,000. ERROR_SAFE_LIMITS_EXCEEDED. - - The ``where`` field is now rendered in ``model.AppError`` only when it's present. - - Added Outgoing Oauth implementation ``Get``/``List`` logic. - - The mmctl bulk import process command in local mode now supports processing an import file without actually uploading it to the server. Simply pass the file path to the import file and the server will directly read from it, and pass the ``--bypass-upload`` flag. There is no need to use the import upload command. NOTE: all of this is applicable only in local mode. - - Added **Monthly Active Users** (MAU) as part of the true-up report. - - Prometheus metrics are now available under the Source Available License. - -#### Performance - - Optimized ``createPost`` performance. - - Improved the performance of emoji uploads. - - Made small optimizations in several database calls: - - ``App.HasPermissionToChannel`` - - ``getPostsForChannelAroundLastUnread`` - - ``publishWebsocketEventForPermalinkPost`` - - ``countMentionsFromPost`` - -#### Plugins - - Plugins are now allowed to register user settings. - - Plugins can now register an action in the **User Settings** section. Plugins can also now disable a section in their **User Settings**. - - Included session id in request payload of the ``WebSocketMessageHasBeenPosted`` plugin hook. - -### Bug Fixes - - Fixed an issue where the right-hand side stopped getting the focus when navigating from **Global Threads** or **Global Drafts**. - - Fixed a theme issue in the notification settings. - - Fixed a regression in compliance exports which did not allow the export job to be canceled gracefully on server shutdown. - - Fixed an error where posts dismissed by a plugin were not properly removed from the view. - - Fixed an issue where if there were multiple websocket connections from a single user, then in case one connection got removed during a broadcast, there was a possibility that the other good connection would not get the event. - - Fixed an issue with true-up reports sending active users and not activated users. - - Fixed an issue where users were not able to navigate through links to private channels they are member of with certain configurations. - -### 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 all plans: - - Under ``ServiceSettings`` in ``config.json``: - - Added ``MaximumPayloadSizeBytes`` to add a limit to the payload size of API endpoints passing in arrays. - - Added a configuration setting ``OutgoingIntegrationRequestsDefaultTimeout`` for integration requests. - -#### Changes to the Professional and Enterprise plans: - - Under ``WranglerSettings`` in ``config.json``: - - Added ``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. - -#### Changes to the Enterprise plan: - - Under ``DataRetentionSettings`` in ``config.json``: - - Added two new configuration settings, ``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. - -### API Changes - - Added a new API endpoint ``POST /api/v4/posts//move``. - - Added ``UpdateChannelMembersNotifications`` plugin API. - - Added plugin APIs and hooks for accessing the **Shared Channels** service via plugins. - - Added a limit to the payload size of API endpoints passing in arrays. - - Added ``PreferencesHaveChanged`` plugin hook. - - Added ``GetPreferenceForUser`` plugin API. - - Added a new API endpoint ``GET /api/v4/users/report`` for system admin user reporting. - - Added a new API endpoint ``GET /api/v4/reports/users/count``. - -### Open Source Components - - Added ``@tanstack/react-table`` and ``prometheus/client_model`` to https://github.com/mattermost/mattermost/. - -### Go Version - - v9.5 is built with Go ``v1.20.7``. - -### Known Issues - - User autocomplete no longer stays closed after pressing ESC key [MM-56748](https://mattermost.atlassian.net/browse/MM-56748). - - 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. - - 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. - - The Playbooks left-hand sidebar doesn't update when a user is added to a run or playbook without a refresh. - - If a user isn't a member of a configured broadcast channel, posting a status update might fail without any error feedback. As a temporary workaround, join the configured broadcast channels, or remove those channels from the run configuration. - - The Playbooks left-hand sidebar does not update when a user is added to a run or playbook without a refresh. - -### Contributors - - [agarciamontoro](https://github.com/agarciamontoro), [agnivade](https://github.com/agnivade), [akbarkz](https://translate.mattermost.com/user/akbarkz), [amyblais](https://github.com/amyblais), [andriuspetrauskis](https://github.com/andriuspetrauskis), [andriuspre](https://github.com/andriuspre), [angeloskyratzakos](https://github.com/angeloskyratzakos), [asaadmahmood](https://github.com/asaadmahmood), [ayusht2810](https://github.com/ayusht2810), [azigler](https://github.com/azigler), [azistellar](https://translate.mattermost.com/user/azistellar), [azizthegit](https://github.com/azizthegit), [bbodenmiller](https://github.com/bbodenmiller), [BenCookie95](https://github.com/BenCookie95), [c0d33ngr](https://github.com/c0d33ngr), [catenacyber](https://github.com/catenacyber), [cedricongjh](https://github.com/cedricongjh), [Chlbek](https://translate.mattermost.com/user/Chlbek), [chriswachira](https://github.com/chriswachira), [coltoneshaw](https://github.com/coltoneshaw), [cpoile](https://github.com/cpoile), [cripton](https://github.com/cripton), [crspeller](https://github.com/crspeller), [ctlaltdieliet](https://github.com/ctlaltdieliet), [cwarnermm](https://github.com/cwarnermm), [cyberjam](https://github.com/cyberjam), [devinbinnie](https://github.com/devinbinnie), [duttakapil](https://github.com/duttakapil), [Eleferen](https://translate.mattermost.com/user/Eleferen), [enahum](https://github.com/enahum), [GabrielCasaro](https://github.com/GabrielCasaro), [gabrieljackson](https://github.com/gabrieljackson), [grundleborg](https://github.com/grundleborg), [hanzei](https://github.com/hanzei), [harshilsharma63](https://github.com/harshilsharma63), [heisdinesh](https://github.com/heisdinesh), [hmhealey](https://github.com/hmhealey), [hynex](https://translate.mattermost.com/user/hynex), [ifoukarakis](https://github.com/ifoukarakis), [isacikgoz](https://github.com/isacikgoz), [jespino](https://github.com/jespino), [johndavidlugtu](https://github.com/johndavidlugtu), [johnsonbrothers](https://github.com/johnsonbrothers), [jones](https://translate.mattermost.com/user/jones), [jprusch](https://github.com/jprusch), [JulienTant](https://github.com/JulienTant), [kaakaa](https://github.com/kaakaa), [kerochelo](https://github.com/kerochelo), [Kshitij-Katiyar](https://github.com/Kshitij-Katiyar), [larkox](https://github.com/larkox), [lieut-data](https://github.com/lieut-data), [lindalumitchell](https://github.com/lindalumitchell), [M-ZubairAhmed](https://github.com/M-ZubairAhmed), [majo](https://translate.mattermost.com/user/majo), [marianunez](https://github.com/marianunez), [master7](https://translate.mattermost.com/user/master7), [matoro](https://github.com/matoro), [matt-w99](https://github.com/matt-w99), [matthew-w](https://translate.mattermost.com/user/matthew-w), [mgdelacroix](https://github.com/mgdelacroix), [mickmister](https://github.com/mickmister), [milotype](https://translate.mattermost.com/user/milotype), [mkaraki](https://github.com/mkaraki), [mvitale1989](https://github.com/mvitale1989), [nickmisasi](https://github.com/nickmisasi), [Nityanand13](https://github.com/Nityanand13), [norma596](https://translate.mattermost.com/user/norma596), [Omar8345](https://github.com/Omar8345), [phoinixgrr](https://github.com/phoinixgrr), [raghavaggarwal2308](https://github.com/raghavaggarwal2308), [Rutam21](https://github.com/Rutam21), [RyoKub](https://github.com/RyoKub), [sapnasivakumar](https://github.com/sapnasivakumar), [saturninoabril](https://github.com/saturninoabril), [sbishel](https://github.com/sbishel), [ShrootBuck](https://github.com/ShrootBuck), [SkyDusH](https://translate.mattermost.com/user/SkyDusH), [sonichigo](https://github.com/sonichigo), [sri-byte](https://github.com/sri-byte), [stafot](https://github.com/stafot), [streamer45](https://github.com/streamer45), [stylianosrigas](https://github.com/stylianosrigas), [Sudhanva-Nadiger](https://github.com/Sudhanva-Nadiger), [Syed-Ali-Abbas-Zaidi](https://github.com/Syed-Ali-Abbas-Zaidi), [TealWater](https://github.com/TealWater), [thinkGeist](https://github.com/thinkGeist), [thomasbrq](https://github.com/thomasbrq), [ThrRip](https://github.com/ThrRip), [titanventura](https://github.com/titanventura), [toninis](https://github.com/toninis), [trangology](https://github.com/trangology), [tsabi](https://translate.mattermost.com/user/tsabi), [Utsav-Ladani](https://github.com/Utsav-Ladani), [varghesejose2020](https://github.com/varghesejose2020), [vish9812](https://github.com/vish9812), [VishalB98](https://github.com/VishalB98), [wiggin77](https://github.com/wiggin77), [Willy-Wakam](https://github.com/Willy-Wakam), [yasserfaraazkhan](https://github.com/yasserfaraazkhan), [yaz](https://translate.mattermost.com/user/yaz), [yomiadetutu1](https://github.com/yomiadetutu1) - ----- - -(release-v9-4-feature-release)= -## Release v9.4 - [Feature Release](https://docs.mattermost.com/upgrade/release-definitions.html#feature-release) - -- **9.4.5, released 2024-03-26** - - Mattermost v9.4.5 contains low to medium severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). - - Mattermost v9.4.5 contains no database or functional changes. -- **9.4.4, released 2024-03-06** - - Mattermost v9.4.4 contains low to medium severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). - - Mattermost v9.4.4 contains no database or functional changes. -- **9.4.3, released 2024-02-14** - - Mattermost v9.4.3 contains low to high severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). - - Mattermost v9.4.3 contains no database or functional changes. - - Pre-packaged Jira plugin version [v4.1.0](https://github.com/mattermost/mattermost-plugin-jira/releases/tag/v4.1.0). -- **9.4.2, released 2024-01-30** - - Mattermost v9.4.2 contains low to medium severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). - - Fixed an issue with true-up reports sending active users and not activated users. Added **Monthly Active Users** (MAU) as part of the true-up reports. - - Mattermost v9.4.2 contains no database or functional changes. -- **9.4.1, released 2024-01-16** - - Fixed an issue where ``getChannelMemberOnly`` failed to fetch data when certain fields were NULL. -- **9.4.0, released 2024-01-16** - - Original 9.4.0 release. - -### Important Upgrade Notes - - MySQL v5.7 is at end of life. We recommend all customers to upgrade to at least 8.x. For now, we are logging a warning. From Mattermost v9.5, which is the next Extended Support Release, we will stop supporting MySQL v5.7 altogether. - -```{Important} -If you upgrade from a release earlier than v9.3, please read the other [Important Upgrade Notes](https://docs.mattermost.com/upgrade/important-upgrade-notes.html). -``` - -### Compatibility - - Updated the minimum required Edge version to v118+. - -### Improvements - -See [this walkthrough video](https://www.youtube.com/watch?v=bEMp4vYLi6c&feature=youtu.be&ab_channel=Mattermost) on some of the improvements in our latest release below. - -#### User Interface (UI) - - Updated the pre-packaged GitHub plugin version to [v2.1.7](https://github.com/mattermost/mattermost-plugin-github/releases/tag/v2.1.7). - - Pre-packaged Calls plugin version [v0.22.2](https://github.com/mattermost/mattermost-plugin-calls/releases/tag/v0.22.2). - - Improved the user interface of the channel notifications modal. - - Emojis are now enlarged in emoji tooltips on mouse hover. - - Added a gap of 8px between buttons in the modal footer when opened in the mobile web view. - - Updated empty states to align with new branding and made changes to the empty state copy. - - Adjusted the position of the suggestion list in "Add to a channel" modal to be below or above the text field. - -#### Administration - - Added support for IP Filtering in Cloud (Cloud Enterprise plan) (this feature is disabled by default and behind a feature flag). - - Added support for Bring Your Own Key (BYOK) Encryption (Cloud Enterprise plan). - - An optional dedicated filestore is now used for compliance exports if configured (Cloud Enterprise plan). - - ``MessageExportSettings.GlobalRelaySettings.CustomerType`` now supports "CUSTOM". - - Added new ``ServerMetrics`` hook to allow plugins to register a custom HTTP endpoint to serve their metrics under the server's metrics HTTP listener. - - Admins now have the ability to pipe the output of ``mmctl websocket`` into the JSON parser. - - Added stores for OAuth **Outgoing Connections**. - - Added last login timestamp for users, and added a materialized view and a refresh job to keep track of post stats for PostgreSQL. - - Allowed plugin requests to include **Authorization** headers from external systems. - - Added a mmctl command ``mmctl system supportpacket`` to download the **Support Packet**. - - Added a new mmctl command ``oauth list`` for listing registered OAuth2 applications. - -### Bug Fixes - - Fixed an issue with the emoji reaction toggle behavior. - - Fixed an issue with the spacing between Playbooks and the separator in the Apps bar. - -### 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 all plans: - - Under ``RefreshPostStatsRunTime`` in ``config.json``: - - Added ``RefreshPostStatsRunTime`` to add last login timestamp for users and to add materialized view and refresh job to keep track of post stats for PostgreSQL. - -#### Changes to the Enterprise plan: - - Under ``GlobalRelayMessageExportSettings`` in ``config.json``: - - Added two new configuration settings ``CustomSMTPServerName`` and ``CustomSMTPPort`` to allow setting a custom URL and port for Global Relay export. This enables compliance export to integrate with Proofpoint. - -### Open Source Components: - - Added ``@mattermost/desktop-api`` and ``ipaddr.js`` to https://github.com/mattermost/mattermost/. - -### Go Version - - v9.4 is built with Go ``v1.20.7``. - -### Known Issues - - Non-channel-admin users can no longer use message links in private channels [MM-56575](https://mattermost.atlassian.net/browse/MM-56575). - - Preview doesn't work when editing a channel header [MM-56572](https://mattermost.atlassian.net/browse/MM-56572). - - The channel member count shows as zero in the **Browse channels** modal [MM-56266](https://mattermost.atlassian.net/browse/MM-56266). - - Adding an @mention at the start of a post draft and pressing the left or right arrow key can clear the post draft and the undo history [MM-33823](https://mattermost.atlassian.net/browse/MM-33823). - - 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. - - 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. - - The Playbooks left-hand sidebar doesn't update when a user is added to a run or playbook without a refresh. - - If a user isn't a member of a configured broadcast channel, posting a status update might fail without any error feedback. As a temporary workaround, join the configured broadcast channels, or remove those channels from the run configuration. - - The Playbooks left-hand sidebar does not update when a user is added to a run or playbook without a refresh. - -### Contributors - - [AayushChaudhary0001](https://github.com/AayushChaudhary0001), [aditipatelpro](https://github.com/aditipatelpro), [agarciamontoro](https://github.com/agarciamontoro), [agnivade](https://github.com/agnivade), [akbarkz](https://github.com/akbarkz), [Alpha-4](https://github.com/Alpha-4), [amyblais](https://github.com/amyblais), [andrius](https://translate.mattermost.com/user/andrius), [andriuspetrauskis](https://github.com/andriuspetrauskis), [andrleite](https://github.com/andrleite), [arthurhrg](https://github.com/arthurhrg), [arush-vashishtha](https://github.com/arush-vashishtha), [asaadmahmood](https://github.com/asaadmahmood), [avas27JTG](https://github.com/avas27JTG), [ayusht2810](https://github.com/ayusht2810), [azigler](https://github.com/azigler), [BenCookie95](https://github.com/BenCookie95), [caotanduc99](https://github.com/caotanduc99), [CI-YU](https://github.com/CI-YU), [codejagaban](https://github.com/codejagaban), [cpoile](https://github.com/cpoile), [crspeller](https://github.com/crspeller), [ctlaltdieliet](https://github.com/ctlaltdieliet), [cwarnermm](https://github.com/cwarnermm), [cyberjam](https://github.com/cyberjam), [danielsischy](https://github.com/danielsischy), [Dev-A-Line](https://translate.mattermost.com/user/Dev-A-Line), [devinbinnie](https://github.com/devinbinnie), [DHaussermann](https://github.com/DHaussermann), [dkkb](https://github.com/dkkb), [Eleferen](https://translate.mattermost.com/user/Eleferen), [enahum](https://github.com/enahum), [fmartingr](https://github.com/fmartingr), [FokinAleksandr](https://github.com/FokinAleksandr), [GabrielCasaro](https://github.com/GabrielCasaro), [gabrieljackson](https://github.com/gabrieljackson), [gabsfrancis](https://translate.mattermost.com/user/gabsfrancis), [grundleborg](https://github.com/grundleborg), [hanzei](https://github.com/hanzei), [harsh4723](https://github.com/harsh4723), [harshilsharma63](https://github.com/harshilsharma63), [hasancankucuk](https://github.com/hasancankucuk), [hereje](https://github.com/hereje), [hmhealey](https://github.com/hmhealey), [ifoukarakis](https://github.com/ifoukarakis), [isacikgoz](https://github.com/isacikgoz), [jasonblais](https://github.com/jasonblais), [jespino](https://github.com/jespino), [johnsonbrothers](https://github.com/johnsonbrothers), [jprusch](https://translate.mattermost.com/user/jprusch), [jwilander](https://github.com/jwilander), [kaakaa](https://github.com/kaakaa), [Kshitij-Katiyar](https://github.com/Kshitij-Katiyar), [larkox](https://github.com/larkox), [lieut-data](https://github.com/lieut-data), [lindalumitchell](https://github.com/lindalumitchell), [ludvigbolin](https://github.com/ludvigbolin), [lynn915](https://github.com/lynn915), [M-ZubairAhmed](https://github.com/M-ZubairAhmed), [majo](https://translate.mattermost.com/user/majo), [master7](https://translate.mattermost.com/user/master7), [matt-w99](https://github.com/matt-w99), [matthew-w](https://translate.mattermost.com/user/matthew-w), [matthewbirtch](https://github.com/matthewbirtch), [mgdelacroix](https://github.com/mgdelacroix), [mickmister](https://github.com/mickmister), [morgancz](https://github.com/morgancz), [mvitale1989](https://github.com/mvitale1989), [neflyte](https://github.com/neflyte), [nickmisasi](https://github.com/nickmisasi), [Paul-Stern](https://github.com/Paul-Stern), [pgteekens](https://translate.mattermost.com/user/pgteekens), [phoinixgrr](https://github.com/phoinixgrr), [PromoFaux](https://github.com/PromoFaux), [PulkitGarg-code](https://github.com/PulkitGarg-code), [raghavaggarwal2308](https://github.com/raghavaggarwal2308), [rajatdangat](https://github.com/rajatdangat), [relwell](https://github.com/relwell), [roaslin](https://github.com/roaslin), [rohan-kapse](https://github.com/rohan-kapse), [rohitkbc](https://github.com/rohitkbc), [Rutam21](https://github.com/Rutam21), [RyoKub](https://github.com/RyoKub), [saakshiraut28](https://github.com/saakshiraut28), [San4es](https://github.com/San4es), [sapnasivakumar](https://github.com/sapnasivakumar), [saturninoabril](https://github.com/saturninoabril), [sbishel](https://github.com/sbishel), [Sharuru](https://github.com/Sharuru), [ShlokJswl](https://github.com/ShlokJswl), [sinansonmez](https://github.com/sinansonmez), [srappan](https://github.com/srappan), [sri-byte](https://github.com/sri-byte), [srisri332](https://github.com/srisri332), [stafot](https://github.com/stafot), [streamer45](https://github.com/streamer45), [stylianosrigas](https://github.com/stylianosrigas), [Sudhanva-Nadiger](https://github.com/Sudhanva-Nadiger), [svelle](https://github.com/svelle), [Syed-Ali-Abbas-Zaidi](https://github.com/Syed-Ali-Abbas-Zaidi), [tanmaythole](https://github.com/tanmaythole), [TealWater](https://github.com/TealWater), [thomasbrq](https://github.com/thomasbrq), [ThrRip](https://github.com/ThrRip), [toninis](https://github.com/toninis), [tsabi](https://github.com/tsabi), [umrkhn](https://github.com/umrkhn), [varghesejose2020](https://github.com/varghesejose2020), [Vinecreeper888](https://github.com/Vinecreeper888), [weblate](https://github.com/weblate), [wiggin77](https://github.com/wiggin77), [yasserfaraazkhan](https://github.com/yasserfaraazkhan), [yomiadetutu1](https://github.com/yomiadetutu1), [ZubairImtiaz3](https://github.com/ZubairImtiaz3) - ----- - -(release-v9-3-feature-release)= -## Release v9.3 - [Feature Release](https://docs.mattermost.com/upgrade/release-definitions.html#feature-release) - -- **9.3.3, released 2024-03-06** - - Mattermost v9.3.3 contains low to medium severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). - - Mattermost v9.3.3 contains no database or functional changes. -- **9.3.2, released 2024-02-14** - - Mattermost v9.3.2 contains low to high severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). - - Mattermost v9.3.2 contains no database or functional changes. - - Pre-packaged Jira plugin version [v4.1.0](https://github.com/mattermost/mattermost-plugin-jira/releases/tag/v4.1.0). -- **9.3.1, released 2024-01-30** - - Mattermost v9.3.1 contains low to medium severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). - - Mattermost v9.3.1 contains no database or functional changes. -- **9.3.0, released 2023-12-15** - - Original 9.3.0 release. - -### Important Upgrade Notes - - Please read the [Important Upgrade Notes](https://docs.mattermost.com/upgrade/important-upgrade-notes.html) before upgrading. - -### Compatibility - - Updated minimum required Firefox version to v115+. - - Updated minimum supported Chromium version to 118+. - -### Improvements - -See [this walkthrough video](https://www.youtube.com/watch?v=eXA8emM97Bo) on some of the improvements in our latest release below. - -#### User Interface (UI) - - Updated pre-packaged Playbooks plugin version to [v1.39.1](https://github.com/mattermost/mattermost-plugin-playbooks/releases/tag/v1.39.1). - - Updated pre-packaged Calls version to [v0.21.1](https://github.com/mattermost/mattermost-plugin-calls/releases/tag/v0.21.1). - - Updated pre-packaged Jira plugin version to [v4.0.1](https://github.com/mattermost/mattermost-plugin-jira/releases/tag/v4.0.1). Also see [v4.0.0](https://github.com/mattermost/mattermost-plugin-jira/releases/tag/v4.0.0) for recent breaking changes. - - Added Vietnamese (Beta) as a new language. - - Added the ability to passively track keywords with highlights without triggering a notification (Professional and Enterprise plans). - - Updated the **Settings** modal with an improved user interface. - - Added a new **Jump to recents** banner when a channel is scrolled up. - - Modified the behavior of the code button (Ctrl+Alt+C) to create inline codes or code blocks. - - Disabled markdown keybindings within code blocks. - - Added a **Back** button to the ``/access_problem`` page. - - Added a default limit of the number of reactions per post. - -#### Performance - - Removed pre-fetch preference and set new prefetch limits for the webapp. - - Improved websocket event marshaling performance. - - Batched loading of recently used emojis on initial load. - -#### Administration - - The tooltip on the announcement bar in the **System Console** is now widened. - - Improved the error message when trying to activate a plugin in an unsupported environment. - - Added a file storage permission check to the workspace health dashboard. - - Performed a cleanup in preparation for adding support for multi-word keywords that trigger notification. - - Added a warning log message when the app runs as root. - - Removed all uses of the ``ExperimentalTimezone`` setting. The Timezone feature is now always enabled and no longer behind a configuration setting. - - Added support for previewing WebVTT attachments. - - Introduced separate ``AdvancedLogging`` levels for LDAP messages. - - Introduced trace logging level for LDAP messages. - - Added a new way to modify ``WebSocket`` messages sent to individual connections. - - Added a new server side hook ``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. - - Users and posts are now pretty-printed in the logs. - - Improved file extraction logging. - - Exposed ``ThreadView`` and ``AdvancedCreateComment`` components in the webapp plugin exported components list. - - Added **Logging > Advanced Logging** setting to the **System Console** to allow admins to configure custom log targets via the user interface. - -### Bug Fixes - - Fixed an issue where marking a Group Message as unread didn't show the badge count correctly. - - Fixed an issue where ``invite_id`` was being reset on all team changes. - - Fixed an issue where interactive dialog elements with subtype ``number`` didn't handle a ``0`` value properly. - - Fixed an issue with the download link in channel file search items when including a path in the **Site URL** setting. - - Fixed an issue with the formatting of special mentions in the right-hand side. - - Fixed ``MessageWillBeUpdated`` plugin hook to allow rejections. - - Fixed an issue with some shortcuts not working as expected. - - Fixed the message history not clearing the input on the center channel. - - Fixed an issue where a higher contrast was generated for some usernames. - - Fixed an issue where newly created Group Messages showed having 0 members. - - Fixed an issue where an incorrect timestamp was assigned to support packet files. - - Fixed an issue where the **Reset Password** link was not displayed if only LDAP/AD was enabled. - - Fixed an issue where **Recent Mentions** showed posts for other similar named users. - - Fixed an error that appeared when updating the header of Group Messages. - - Fixed an issue that caused the server to get stuck during shutdown due to a deadlock in a dependency. - - Fixed an issue where Desktop App clients would be shown an error when trying to open file preview links. - - Fixed an issue with double URL encoding of Oauth redirect URI params. - - Fixed an issue where users couldn't at-mention custom groups in group constrained teams and channels. - - Fixed an issue where the channel admin wasn't being set when converting a Group Message to a private channel. - -### 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 all plans: - - Removed ``DisplaySettings.ExperimentalTimezone`` setting. - - Under ``ServiceSettings`` in ``config.json``: - - Added ``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. - -### API Changes - - Added an API to batch requests for custom emojis on page load. - -### Database Changes - - ``NextSyncAt`` and ``Description`` columns are removed from the ``SharedChannelsRemotes`` table. Migration impact is considered to be minimal considering the possible table size. - -### Go Version - - v9.3 is built with Go ``v1.20.7``. - -### Known Issues - - Mattermost Omnibus: Unable to install omnibus due to unmet dependencies [MM-56080](https://mattermost.atlassian.net/browse/MM-56080). - - Adding an @mention at the start of a post draft and pressing the left or right arrow key can clear the post draft and the undo history [MM-33823](https://mattermost.atlassian.net/browse/MM-33823). - - 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. - - 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. - - The Playbooks left-hand sidebar doesn't update when a user is added to a run or playbook without a refresh. - - If a user isn't a member of a configured broadcast channel, posting a status update might fail without any error feedback. As a temporary workaround, join the configured broadcast channels, or remove those channels from the run configuration. - - The Playbooks left-hand sidebar does not update when a user is added to a run or playbook without a refresh. - -### Contributors - - [agarciamontoro](https://github.com/agarciamontoro), [agnivade](https://github.com/agnivade), [AirGoatOne](https://github.com/AirGoatOne), [akbarkz](https://github.com/akbarkz), [amigo7kr](https://github.com/amigo7kr), [amyblais](https://github.com/amyblais), [anneschuth](https://github.com/anneschuth), [ARJ2160](https://github.com/ARJ2160), [Arslan-work](https://github.com/Arslan-work), [arthurh](https://translate.mattermost.com/user/arthurh), [arthurhrg](https://github.com/arthurhrg), [Aryakoste](https://github.com/Aryakoste), [asaadmahmood](https://github.com/asaadmahmood), [AshishDhama](https://github.com/AshishDhama), [avas27JTG](https://github.com/avas27JTG), [AvaterClasher](https://github.com/AvaterClasher), [ayusht2810](https://github.com/ayusht2810), [azigler](https://github.com/azigler), [BandhiyaHardik](https://github.com/BandhiyaHardik), [BenCookie95](https://github.com/BenCookie95), [Benjamin-Loison](https://github.com/Benjamin-Loison), [calebroseland](https://github.com/calebroseland), [catenacyber](https://github.com/catenacyber), [cedarice](https://github.com/cedarice), [CI-YU](https://github.com/CI-YU), [coltoneshaw](https://github.com/coltoneshaw), [cpoile](https://github.com/cpoile), [crspeller](https://github.com/crspeller), [ctlaltdieliet](https://github.com/ctlaltdieliet), [cwarnermm](https://github.com/cwarnermm), [Davut97](https://github.com/Davut97), [deepakumarvu](https://github.com/deepakumarvu), [devinbinnie](https://github.com/devinbinnie), [Dhoni77](https://github.com/Dhoni77), [DimitriDR](https://translate.mattermost.com/user/DimitriDR), [edwardnguyen225](https://github.com/edwardnguyen225), [Eleferen](https://translate.mattermost.com/user/Eleferen), [emdecr](https://github.com/emdecr), [Emil-Carlsson](https://github.com/Emil-Carlsson), [enahum](https://github.com/enahum), [escofresco](https://github.com/escofresco), [fandour](https://translate.mattermost.com/user/fandour), [fazil-syed](https://github.com/fazil-syed), [fmartingr](https://github.com/fmartingr), [gabrieljackson](https://github.com/gabrieljackson), [hanzei](https://github.com/hanzei), [harshal2030](https://github.com/harshal2030), [harshilsharma63](https://github.com/harshilsharma63), [heisdinesh](https://github.com/heisdinesh), [hmhealey](https://github.com/hmhealey), [ifoukarakis](https://github.com/ifoukarakis), [imamimam113](https://github.com/imamimam113), [imkrishnasarathi](https://github.com/imkrishnasarathi), [isacikgoz](https://github.com/isacikgoz), [jasonblais](https://github.com/jasonblais), [jespino](https://github.com/jespino), [johndavidlugtu](https://github.com/johndavidlugtu), [johnsonbrothers](https://github.com/johnsonbrothers), [jonathanwiemers](https://github.com/jonathanwiemers), [jprusch](https://github.com/jprusch), [JulienTant](https://github.com/JulienTant), [jwilander](https://github.com/jwilander), [kaakaa](https://github.com/kaakaa), [kapdev](https://translate.mattermost.com/user/kapdev), [kayazeren](https://github.com/kayazeren), [Kimbohlovette](https://github.com/Kimbohlovette), [Kshitij-Katiyar](https://github.com/Kshitij-Katiyar), [KuSh](https://github.com/KuSh), [kyeongsoosoo](https://github.com/kyeongsoosoo), [larkox](https://github.com/larkox), [LeonardJouve](https://github.com/LeonardJouve), [lieut-data](https://github.com/lieut-data), [lindy65](https://github.com/lindy65), [linkvn](https://github.com/linkvn), [ludvigbolin](https://github.com/ludvigbolin), [M-ZubairAhmed](https://github.com/M-ZubairAhmed), [m1lt0n](https://github.com/m1lt0n), [majo](https://translate.mattermost.com/user/majo), [manojmalik20](https://github.com/manojmalik20), [master7](https://translate.mattermost.com/user/master7), [matt-w99](https://github.com/matt-w99), [matthew-w](https://translate.mattermost.com/user/matthew-w), [matthewbirtch](https://github.com/matthewbirtch), [maxtrem271991](https://github.com/maxtrem271991), [mickmister](https://github.com/mickmister), [milotype](https://github.com/milotype), [mozi47](https://github.com/mozi47), [mvitale1989](https://github.com/mvitale1989), [nathanaelhoun](https://github.com/nathanaelhoun), [newdominic](https://github.com/newdominic), [nickmisasi](https://github.com/nickmisasi), [nosyn](https://github.com/nosyn), [otilor](https://github.com/otilor), [pacop](https://github.com/pacop), [Paul-Stern](https://github.com/Paul-Stern), [Paul-vrn](https://github.com/Paul-vrn), [phoinixgrr](https://github.com/phoinixgrr), [proggga](https://github.com/proggga), [pvev](https://github.com/pvev), [raghavaggarwal2308](https://github.com/raghavaggarwal2308), [rahulsuresh-git](https://github.com/rahulsuresh-git), [rashmibharambe](https://github.com/rashmibharambe), [Reene-Simon](https://github.com/Reene-Simon), [rohan-kapse](https://github.com/rohan-kapse), [rohitkbc](https://github.com/rohitkbc), [rubinaga](https://github.com/rubinaga), [RyoKub](https://github.com/RyoKub), [san70sh](https://github.com/san70sh), [sapnasivakumar](https://github.com/sapnasivakumar), [sbishel](https://github.com/sbishel), [seoyeongeun](https://github.com/seoyeongeun), [Sharuru](https://github.com/Sharuru), [shivamjosh](https://github.com/shivamjosh), [sinansonmez](https://github.com/sinansonmez), [Sn-Kinos](https://github.com/Sn-Kinos), [sp6370](https://github.com/sp6370), [sri-byte](https://github.com/sri-byte), [stafot](https://github.com/stafot), [streamer45](https://github.com/streamer45), [stylianosrigas](https://github.com/stylianosrigas), [Sudhanva-Nadiger](https://github.com/Sudhanva-Nadiger), [sudheer121](https://github.com/sudheer121), [Syed-Ali-Abbas-Zaidi](https://github.com/Syed-Ali-Abbas-Zaidi), [tanmaythole](https://github.com/tanmaythole), [tejas161](https://github.com/tejas161), [thomasbrq](https://github.com/thomasbrq), [ThrRip](https://github.com/ThrRip), [TomerPacific](https://github.com/TomerPacific), [toninis](https://github.com/toninis), [trivikr](https://github.com/trivikr), [tsabi](https://github.com/tsabi), [turretkeeper](https://github.com/turretkeeper), [umrkhn](https://github.com/umrkhn), [vish9812](https://github.com/vish9812), [wcdfilll](https://translate.mattermost.com/user/wcdfilll), [wiebel](https://github.com/wiebel), [wiggin77](https://github.com/wiggin77), [yasserfaraazkhan](https://github.com/yasserfaraazkhan), [yomiadetutu1](https://github.com/yomiadetutu1) - ----- - -(release-v9-2-feature-release)= -## Release v9.2 - [Feature Release](https://docs.mattermost.com/upgrade/release-definitions.html#feature-release) - -- **9.2.6, released 2024-02-14** - - Mattermost v9.2.6 contains low to high severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). - - Mattermost v9.2.6 contains no database or functional changes. - - Pre-packaged Jira plugin version [v4.1.0](https://github.com/mattermost/mattermost-plugin-jira/releases/tag/v4.1.0). -- **9.2.5, released 2024-01-30** - - Mattermost v9.2.5 contains low to medium severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). - - Mattermost v9.2.5 contains no database or functional changes. -- **9.2.4, released 2024-01-09** - - Mattermost v9.2.4 contains medium severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). - - Mattermost v9.2.4 contains the following functional changes: - - Fixed an issue where invalid reactions could be added to posts. Added default limit of the number of reactions per post. -- **9.2.3, released 2023-11-29** - - Mattermost v9.2.3 contains medium severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). - - Mattermost v9.2.3 contains no database or functional changes. - - Pre-packaged Calls plugin version [v0.21.1](https://github.com/mattermost/mattermost-plugin-calls/releases/tag/v0.21.1). -- **9.2.2, released 2023-11-08** - - Mattermost v9.2.2 contains a high severity level security fix. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). - - Pre-packaged Playbooks plugin version [v1.39.1](https://github.com/mattermost/mattermost-plugin-playbooks/releases/tag/v1.39.1). - - Fixed an issue where the **About Mattermost** dialog reported an incorrect server version. -- **9.2.1, released 2023-11-06** - - Fixed an issue where Ubuntu GLIBC errors were thrown on Ubuntu 20.04 and Debian Bullseye versions. -- **9.2.0, released 2023-11-02** - - Original 9.2.0 release - -### Important Upgrade Notes - - Fixed data retention policies to run jobs when any custom retention policy is enabled even when the global retention policy is set to **keep-forever**. Before this fix, the enabled custom data retention policies wouldn’t run as long as the global data retention policy was set to **keep-forever** or was disabled. After the fix, the custom data retention policies will run automatically even when the global data retention policy is set to **keep-forever**. Once the server is upgraded, posts may unintentionally be deleted. Admins should make sure to disable all custom data retention policies before upgrading, and then re-enable them again after upgrading. - -```{Important} -If you upgrade from a release earlier than v9.1, please read the other [Important Upgrade Notes](https://docs.mattermost.com/upgrade/important-upgrade-notes.html). -``` - -### Compatibility - - Updated minimum required Edge version to 116+. - -### Improvements - -See [this walkthrough video](https://www.youtube.com/watch?v=udC2OCTGooc&feature=youtu.be&ab_channel=Mattermost) on some of the improvements in our latest release below. - -#### User Interface (UI) - - Improved readability by displaying system messages on multiple lines when editing a channel header. - - Combined "joined/left" event types in system messages. - - Added a new user preference to disable webapp prefetching via **Settings > Advanced > Allow Mattermost to prefetch channel posts**. You must enable **Client Performance Debugging** in the System Console by going to **Environment > Developer** in order for this setting to appear. This setting and Client Performance Debugging should only be enabled temporarily if users are experiencing performance issues. - - Pre-packaged NPS plugin version [v1.3.3](https://github.com/mattermost/mattermost-plugin-nps/releases/tag/v1.3.3). - - Pre-packaged Todo plugin version [v0.7.1](https://github.com/mattermost/mattermost-plugin-todo/releases/tag/v0.7.1). - -#### Administration - - JSON null value cases are now handled correctly by also checking that the pointer is no longer null when unmarshalling to a pointer. - - An annotated logger is now used to capture LDAP and SAML logs. - - Replaced ``github.com/mattermost/gziphandler`` with ``github.com/klauspost/compress/gzhttp``. - - Performance metrics now contain information on if a given request was sent during a page load or a websocket reconnect. - - Elasticsearch aggregation jobs no longer start when a bulk indexing job is currently running. - - Added heap profile, CPU profile, and goroutines profile to the support package. - - Merged WIP i18n locales, but disallowed selecting unsupported locales. - -### Bug Fixes - - Fixed a panic where a simple worker would crash if it failed to get a job. - - Fixed post props on update to properly see channel links. - - Fixed an issue where the API for drafts would return empty drafts. - - Fixed the alignment of the **Help** menu in the global header. - - Fixed a broken link in the **Edit Channel** header modal. - - Fixed an issue that prevented users to be added to channels from the System Console. - - Fixed an issue where the channel member count increased when adding an already present user. - - Fixed an issue where plugin developers were unable to create a ``textarea`` in interactive dialogs. - - Fixed an issue where copy pasting images from Chrome failed. - -### 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 all plans: - - Under ``LogSettings`` in ``config.json``: - - Added a new configuration setting ``MaxFieldSize`` to add the ability to size-limit log fields during logging. - -### API Changes - - Added ``origin_client`` to the ``mattermost_api_time`` metrics. - -### Go Version - - v9.2 is built with Go ``v1.20.7``. - -### Known Issues - - Adding an @mention at the start of a post draft and pressing the left or right arrow key can clear the post draft and the undo history [MM-33823](https://mattermost.atlassian.net/browse/MM-33823). - - 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. - - 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. - - The Playbooks left-hand sidebar doesn't update when a user is added to a run or playbook without a refresh. - - If a user isn't a member of a configured broadcast channel, posting a status update might fail without any error feedback. As a temporary workaround, join the configured broadcast channels, or remove those channels from the run configuration. - - The Playbooks left-hand sidebar does not update when a user is added to a run or playbook without a refresh. - -### Contributors - - [aayushborkar14](https://github.com/aayushborkar14), [AayushChaudhary0001](https://github.com/AayushChaudhary0001), [AbhineshJha](https://github.com/AbhineshJha), [agarciamontoro](https://github.com/agarciamontoro), [agnivade](https://github.com/agnivade), [akaMrDC](https://github.com/akaMrDC), [akbarkz](https://github.com/akbarkz), [alejdg](https://github.com/alejdg), [Alphanum404](https://github.com/Alphanum404), [amigo7kr](https://translate.mattermost.com/user/amigo7kr), [amyblais](https://github.com/amyblais), [amynicol1985](https://github.com/amynicol1985), [andrew-delph](https://github.com/andrew-delph), [andrleite](https://github.com/andrleite), [angeloskyratzakos](https://github.com/angeloskyratzakos), [aniketh-varma](https://github.com/aniketh-varma), [anneschuth](https://translate.mattermost.com/user/anneschuth), [apshada](https://github.com/apshada), [ARJ2160](https://github.com/ARJ2160), [ArturBa](https://github.com/ArturBa), [asaadmahmood](https://github.com/asaadmahmood), [AsisRout](https://github.com/AsisRout), [avas27JTG](https://github.com/avas27JTG), [AvaterClasher](https://github.com/AvaterClasher), [ayrotideysarkar](https://github.com/ayrotideysarkar), [ayusht2810](https://github.com/ayusht2810), [balajik](https://github.com/balajik), [Bangik](https://github.com/Bangik), [bartaz](https://translate.mattermost.com/user/bartaz), [BaumiCoder](https://github.com/BaumiCoder), [BenCookie95](https://github.com/BenCookie95), [bishalpal](https://github.com/bishalpal), [calebroseland](https://github.com/calebroseland), [cedarice](https://translate.mattermost.com/user/cedarice), [cescpmantidfly](https://translate.mattermost.com/user/cescpmantidfly), [CI-YU](https://github.com/CI-YU), [Ciggzy1312](https://github.com/Ciggzy1312), [codeEmpress1](https://github.com/codeEmpress1), [coltoneshaw](https://github.com/coltoneshaw), [costa-neto](https://github.com/costa-neto), [cpoile](https://github.com/cpoile), [crspeller](https://github.com/crspeller), [ctlaltdieliet](https://github.com/ctlaltdieliet), [cwarnermm](https://github.com/cwarnermm), [danialkeimasi](https://github.com/danialkeimasi), [Delaney](https://github.com/Delaney), [devinbinnie](https://github.com/devinbinnie), [DHaussermann](https://github.com/DHaussermann), [dhnlr](https://github.com/dhnlr), [dipandhali2021](https://github.com/dipandhali2021), [Eleferen](https://translate.mattermost.com/user/Eleferen), [emdecr](https://github.com/emdecr), [enahum](https://github.com/enahum), [escofresco](https://github.com/escofresco), [esethna](https://github.com/esethna), [fazil-syed](https://github.com/fazil-syed), [fmartingr](https://github.com/fmartingr), [frjaraur](https://github.com/frjaraur), [fyfirman](https://github.com/fyfirman), [gabrieljackson](https://github.com/gabrieljackson), [Gauravpadam](https://github.com/Gauravpadam), [gibsonliketheguitar](https://github.com/gibsonliketheguitar), [h1usertest](https://translate.mattermost.com/user/h1usertest), [hanzei](https://github.com/hanzei), [harsh-solanki21](https://github.com/harsh-solanki21), [harshal2030](https://github.com/harshal2030), [harshalkh](https://github.com/harshalkh), [harshilsharma63](https://github.com/harshilsharma63), [hmhealey](https://github.com/hmhealey), [ialorro](https://github.com/ialorro), [ifoukarakis](https://github.com/ifoukarakis), [imamimam113](https://translate.mattermost.com/user/imamimam113), [isacikgoz](https://github.com/isacikgoz), [iyampaul](https://github.com/iyampaul), [izruff](https://github.com/izruff), [janlengyel](https://github.com/janlengyel), [jannikbertram](https://github.com/jannikbertram), [jasonblais](https://github.com/jasonblais), [jespino](https://github.com/jespino), [jgilliam17](https://github.com/jgilliam17), [jlandells](https://github.com/jlandells), [johnsonbrothers](https://github.com/johnsonbrothers), [josephjosedev](https://github.com/josephjosedev), [jprusch](https://github.com/jprusch), [js029](https://github.com/js029), [jufab](https://github.com/jufab), [JulienTant](https://github.com/JulienTant), [kaakaa](https://github.com/kaakaa), [kalvdans](https://github.com/kalvdans), [kayazeren](https://github.com/kayazeren), [komodin](https://github.com/komodin), [Kritik-J](https://github.com/Kritik-J), [Kshitij-Katiyar](https://github.com/Kshitij-Katiyar), [KuSh](https://github.com/KuSh), [larkox](https://github.com/larkox), [letehaha](https://github.com/letehaha), [libklein](https://github.com/libklein), [lieut-data](https://github.com/lieut-data), [linkvn](https://github.com/linkvn), [ludvigbolin](https://github.com/ludvigbolin), [M-ZubairAhmed](https://github.com/M-ZubairAhmed), [majo](https://translate.mattermost.com/user/majo), [manojmalik20](https://github.com/manojmalik20), [ManuMinue](https://github.com/ManuMinue), [marianunez](https://github.com/marianunez), [master7](https://translate.mattermost.com/user/master7), [matt-w99](https://github.com/matt-w99), [matthew-w](https://translate.mattermost.com/user/matthew-w), [matthewbirtch](https://github.com/matthewbirtch), [maxtrem271991](https://github.com/maxtrem271991), [mgdelacroix](https://github.com/mgdelacroix), [mickmister](https://github.com/mickmister), [milotype](https://translate.mattermost.com/user/milotype), [mishmanners](https://github.com/mishmanners), [MixeroTN](https://github.com/MixeroTN), [mnj93](https://github.com/mnj93), [mujpao](https://github.com/mujpao), [mustdiechik](https://github.com/mustdiechik), [mvitale1989](https://github.com/mvitale1989), [namanh-asher](https://github.com/namanh-asher), [Navystack](https://github.com/Navystack), [nickmisasi](https://github.com/nickmisasi), [Nico7as](https://translate.mattermost.com/user/Nico7as), [Nityanand13](https://github.com/Nityanand13), [NohaFahmi](https://github.com/NohaFahmi), [otilor](https://github.com/otilor), [Paul-vrn](https://github.com/Paul-vrn), [Peyo6565](https://github.com/Peyo6565), [phoinixgrr](https://github.com/phoinixgrr), [pvev](https://github.com/pvev), [qryptdev](https://github.com/qryptdev), [Quijuletim470](https://translate.mattermost.com/user/Quijuletim470), [returnedinformation](https://github.com/returnedinformation), [riteshmukim](https://github.com/riteshmukim), [rubinaga](https://github.com/rubinaga), [Rutam21](https://github.com/Rutam21), [saideepesh000](https://github.com/saideepesh000), [SaketKaswa20](https://github.com/SaketKaswa20), [saturninoabril](https://github.com/saturninoabril), [sbishel](https://github.com/sbishel), [seoyeongeun](https://translate.mattermost.com/user/seoyeongeun), [Sharuru](https://github.com/Sharuru), [sjcode99](https://github.com/sjcode99), [sondrekje](https://github.com/sondrekje), [sonu27](https://github.com/sonu27), [sp6370](https://github.com/sp6370), [sri-byte](https://github.com/sri-byte), [stafot](https://github.com/stafot), [StreakInTheSky](https://github.com/StreakInTheSky), [streamer45](https://github.com/streamer45), [stylianosrigas](https://github.com/stylianosrigas), [Sudhanva-Nadiger](https://github.com/Sudhanva-Nadiger), [sudheer121](https://github.com/sudheer121), [syedzubeen](https://github.com/syedzubeen), [Tahanima](https://github.com/Tahanima),[tanmaythole](https://github.com/tanmaythole), [this-is-tobi](https://github.com/this-is-tobi), [ThrRip](https://github.com/ThrRip), [TomerPacific](https://github.com/TomerPacific), [toninis](https://github.com/toninis), [trilopin](https://github.com/trilopin), [umrkhn](https://github.com/umrkhn), [varghesejose2020](https://github.com/varghesejose2020), [venugopal1234567](https://github.com/venugopal1234567), [vip2441](https://github.com/vip2441), [wiersgallak](https://github.com/wiersgallak), [wiggin77](https://github.com/wiggin77), [yasserfaraazkhan](https://github.com/yasserfaraazkhan), [yesbhautik](https://github.com/yesbhautik), [ylac](https://github.com/ylac), [ZubairImtiaz3](https://github.com/ZubairImtiaz3) - ----- - -(release-v9-1-feature-release)= -## Release v9.1 - [Feature Release](https://docs.mattermost.com/upgrade/release-definitions.html#feature-release) - -- **9.1.5, released 2024-01-09** - - Mattermost v9.1.5 contains medium severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). - - Mattermost v9.1.5 contains the following functional changes: - - Fixed an issue where invalid reactions could be added to posts. Added default limit of the number of reactions per post. -- **9.1.4, released 2023-11-29** - - Mattermost v9.1.4 contains medium severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). - - Mattermost v9.1.4 contains no database or functional changes. - - Pre-packaged Calls plugin version [v0.21.1](https://github.com/mattermost/mattermost-plugin-calls/releases/tag/v0.21.1). -- **9.1.3, released 2023-11-13** - - Mattermost v9.1.3 contains low to high severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). - - Mattermost v9.1.3 contains no database or functional changes. - - Pre-packaged Playbooks plugin version [v1.39.1](https://github.com/mattermost/mattermost-plugin-playbooks/releases/tag/v1.39.1). - - Fixed an issue where the **About Mattermost** dialog reported an incorrect server version. -- **9.1.2, released 2023-11-06** - - Mattermost v9.1.2 contains low to high severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). - - Mattermost v9.1.2 contains no database or functional changes. -- **9.1.1, released 2023-10-27** - - Mattermost v9.1.1 contains low to medium severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). - - Pre-packaged Focalboard plugin [v7.11.4](https://github.com/mattermost/focalboard/releases/tag/v7.11.4). - - Mattermost v9.1.1 contains the following functional changes: - - Added a new configuration setting ``MaxFieldSize`` to add the ability to size-limit log fields during logging. - - Added a restriction to the mobile Oauth / SAML redirection to match the ``NativeAppSettings.AppCustomURLSchemes`` configuration setting. -- **9.1.0, released 2023-10-16** - - Original 9.1.0 release - -### Important Upgrade Notes - - Improved performance on data retention ``DeleteOrphanedRows`` queries. See the [Important Upgrade Notes](https://docs.mattermost.com/upgrade/important-upgrade-notes.html) 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. - - Minimum supported Desktop App version is now v5.3. OAuth/SAML flows were modified to include ``desktop_login`` which makes earlier versions incompatible. - -```{Important} -If you upgrade from a release earlier than v9.0, please read the other [Important Upgrade Notes](https://docs.mattermost.com/upgrade/important-upgrade-notes.html). -``` - -### Compatibility - - Updated Chromium minimum supported version to 116+. - -### Highlights - -#### Never Miss Group Messages Again - - Group messages (GMs) now behave like direct messages (DMs). [The badge count increases for every new message](https://docs.mattermost.com/collaborate/channel-types.html#group-messages). - -#### Convert Group Messages to Private Channels - - Added the ability to [convert a group message to a private channel](https://docs.mattermost.com/collaborate/convert-group-messages.html). - -See [this walkthrough video](https://www.youtube.com/watch?v=dbHg-63J9dA) on the highlights and some of the below improvements in our latest release. - -### Improvements - -#### User Interface (UI) - - Added a **Cancel** button to the **Delete category** modal. - - Added the ability to resize the channel sidebar and right-hand sidebar. - - Added two new filtering options (show all channel types and show private channels) to the **Browse channels** modal. - - Pre-packaged GitLab plugin version [v1.7.0](https://github.com/mattermost/mattermost-plugin-gitlab/releases/tag/v1.7.0). - - Pre-packaged Calls plugin version [v0.20.0](https://github.com/mattermost/mattermost-plugin-calls/releases/tag/v0.20.0). - - Pre-packaged Playbooks version [v1.39.0](https://github.com/mattermost/mattermost-plugin-playbooks/releases/tag/v1.39.0). - - Added additional reaction options when viewing threads or messages when the sidebar is larger than its minimum width. - - Added a link to [notification documentation](https://docs.mattermost.com/preferences/manage-your-notifications.html) in the **Notification Settings** modal. - - Updated the post textbox measurement code to be more reliable. - - The ``/invite`` slash command now supports custom user groups. - - Re-enabled the remote marketplace functionality, when configured as per ``PluginSettings.EnableRemoteMarketplace`` [documentation](https://docs.mattermost.com/configure/plugins-configuration-settings.html#plugins-enableremotemarketplace). - -#### Administration - - Added ``mattermost-plugin-api`` into the ``mattermost`` GitHub repository. - - Updated the public server module version to v0.0.9. - - Added 2 new URL parameters to ``GET /api/v4/groups``: ``include_archived`` and ``filter_archived``. Added the ability to restore archived groups from the user groups modal. - - Added file storage information to the support package. - - A ``user_id`` is now included in all HTTP logs (debug level) to help determine who is generating unexpected traffic. - - Added new URL parameter to ``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. - -#### Plugin Changes - - Added new frontend plugin extension point for the new messages separator bar. - - Added a new plugin extensibility point to add actions to the code blocks. - - Added the plugin hook ``UserHasBeenDeactivated``. - - Added a new server side plugin API method to set the searchable content for file info (``SetFileSearchableContent``). The ``MessageHasBeenPosted`` plugin hook is now executed after the attachments are linked to the post. - -### Bug Fixes - - Fixed keyboard support for the left-hand side channel menu, the left-hand side category menu, and the post dot menu. - - Fixed display name in the ``comment_on`` component. - - Fixed an issue with keyboard support for some menus with submenus. - - Fixed an issue with disappearing punctuation when following a group mention. - - Fixed an issue where compliance export jobs were not able to start after disabling and enabling the compliance export. - - Fixed a potential read after write issue when loading a license. - - Fixed the API to block any changes to direct and group messages names, display name, or purpose. - -### 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 all plans: - - Removed ``ServiceSettingsDefaultGfycatAPISecret`` and ``ServiceSettingsDefaultGfycatAPIKey`` configuration settings. - - Under ``TeamSettings`` in ``config.json``: - - Added a new config setting ``EnableJoinLeaveMessageByDefault`` that sets the default value for ``UserSetting``, ``ADVANCED_FILTER_JOIN_LEAVE``. - - Under ``DisplaySettings`` in ``config.json``: - - Added a setting ``MaxMarkdownNodes`` to limit the maximum complexity of markdown text on mobile. - - #### Changes to Enterprise plan: - - Under ``DataRetentionSettings`` in ``config.json``: - - Added a new configuration setting ``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. - -### API Changes - - Added the ``X-Forwarded-For`` request header to the audit stream for all Rest API calls. - - Added API endpoint ``POST /api/v4/user/login/desktop_login``. Modified OAuth/SAML flows to include ``desktop_login`` where applicable. - - Added new API endpoint ``GET`` ``/api/v4/channels//common_teams`` to fetch list of teams common between members of a group message. - - Added new API endpoint ``POST`` ``/api/v4/channels//convert_to_channel`` to convert a group message to a private channel. - - Added a new ``MessageHasBeenDeleted`` hook to the plugin API. - - Moved the ``request`` package into the public shared folder. - -### Go Version - - v9.1 is built with Go ``v1.20.7``. - -### Known Issues - - Converting a group message to a channel should show an error "A channel with that name already exists on the same team" for duplicate channel names [MM-54713](https://mattermost.atlassian.net/browse/MM-54713). - - Marking a group message as unread doesn't resurface the numbered notification badge [MM-54778](https://mattermost.atlassian.net/browse/MM-54778). - - Thread/posts jump when switching to and from preview mode [MM-54758](https://mattermost.atlassian.net/browse/MM-54758). - - Desktop UI doesn't show all content when the right-hand side thread is opened [MM-54696](https://mattermost.atlassian.net/browse/MM-54696). - - Left-hand side resize option overrides the **Browse/Create Channel** menu if To-Do plugin is installed [MM-54367](https://mattermost.atlassian.net/browse/MM-54367). - - Adding an @mention at the start of a post draft and pressing the left or right arrow key can clear the post draft and the undo history [MM-33823](https://mattermost.atlassian.net/browse/MM-33823). - - 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. - - 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. - - The Playbooks left-hand sidebar doesn't update when a user is added to a run or playbook without a refresh. - - If a user isn't a member of a configured broadcast channel, posting a status update might fail without any error feedback. As a temporary workaround, join the configured broadcast channels, or remove those channels from the run configuration. - - The Playbooks left-hand sidebar does not update when a user is added to a run or playbook without a refresh. - -### Contributors - - [abhinav700](https://github.com/abhinav700), [agarciamontoro](https://github.com/agarciamontoro), [agnivade](https://github.com/agnivade), [alexdecamillo](https://github.com/alexdecamillo), [amyblais](https://github.com/amyblais), [andrleite](https://github.com/andrleite), [angeloskyratzakos](https://github.com/angeloskyratzakos), [asaadmahmood](https://github.com/asaadmahmood), [AsisRout](https://github.com/AsisRout), [ayusht2810](https://github.com/ayusht2810), [azigler](https://github.com/azigler), [BenCookie95](https://github.com/BenCookie95), [calebroseland](https://github.com/calebroseland), [cedarice](https://translate.mattermost.com/user/cedarice), [coltoneshaw](https://github.com/coltoneshaw), [cpoile](https://github.com/cpoile), [Crere89](https://translate.mattermost.com/user/Crere89), [crspeller](https://github.com/crspeller), [ctlaltdieliet](https://translate.mattermost.com/user/ctlaltdieliet), [cwarnermm](https://github.com/cwarnermm), [deivisonrpg](https://github.com/deivisonrpg), [devinbinnie](https://github.com/devinbinnie), [djanda97](https://github.com/djanda97), [Eleferen](https://translate.mattermost.com/user/Eleferen), [emdecr](https://github.com/emdecr), [enahum](https://github.com/enahum), [esethna](https://github.com/esethna), [fmartingr](https://github.com/fmartingr), [FokinAleksandr](https://github.com/FokinAleksandr), [gabrieljackson](https://github.com/gabrieljackson), [hanzei](https://github.com/hanzei), [harshilsharma63](https://github.com/harshilsharma63), [hibou.sage](https://translate.mattermost.com/user/hibou.sage), [hmhealey](https://github.com/hmhealey), [homerCOD](https://translate.mattermost.com/user/homerCOD), [ialorro](https://github.com/ialorro), [ifoukarakis](https://github.com/ifoukarakis), [intdev32](https://github.com/intdev32), [IronOnet](https://github.com/IronOnet), [isacikgoz](https://github.com/isacikgoz), [jasonblais](https://github.com/jasonblais), [jespino](https://github.com/jespino), [johnsonbrothers](https://github.com/johnsonbrothers), [jprusch](https://github.com/jprusch), [kaakaa](https://github.com/kaakaa), [kayazeren](https://github.com/kayazeren), [Kshitij-Katiyar](https://github.com/Kshitij-Katiyar), [kyeongsoosoo](https://github.com/kyeongsoosoo), [larkox](https://github.com/larkox), [lieut-data](https://github.com/lieut-data), [LimJiAn](https://github.com/LimJiAn), [limod](https://github.com/limod), [linkvn](https://github.com/linkvn), [M-ZubairAhmed](https://github.com/M-ZubairAhmed), [majo](https://translate.mattermost.com/user/majo), [manojmalik20](https://github.com/manojmalik20), [marie0394](https://translate.mattermost.com/user/marie0394), [maruTA-bis5](https://github.com/maruTA-bis5), [master7](https://translate.mattermost.com/user/master7), [matt-w99](https://github.com/matt-w99), [matthew-w](https://translate.mattermost.com/user/matthew-w), [matthewbirtch](https://github.com/matthewbirtch), [mickmister](https://github.com/mickmister), [milotype](https://translate.mattermost.com/user/milotype), [MohammedElansary-dev](https://translate.mattermost.com/user/MohammedElansary-dev), [mornaistar](https://github.com/mornaistar), [mt26691](https://translate.mattermost.com/user/mt26691), [mvitale1989](https://github.com/mvitale1989), [Navystack](https://translate.mattermost.com/user/Navystack), [nickmisasi](https://github.com/nickmisasi), [pvev](https://github.com/pvev), [RayYH](https://github.com/RayYH), [saturninoabril](https://github.com/saturninoabril), [sbishel](https://github.com/sbishel), [Sharuru](https://github.com/Sharuru), [sinansonmez](https://github.com/sinansonmez), [speedhs](https://github.com/speedhs), [sri-byte](https://github.com/sri-byte), [stafot](https://github.com/stafot), [streamer45](https://github.com/streamer45), [stylianosrigas](https://github.com/stylianosrigas), [teamzamong](https://github.com/teamzamong), [TheRealJoeFriel](https://github.com/TheRealJoeFriel), [ThrRip](https://github.com/ThrRip), [timmycheng](https://github.com/timmycheng), [toninis](https://github.com/toninis), [varghese.jose](https://github.com/varghesejose2020), [wiersgallak](https://github.com/wiersgallak), [wiggin77](https://github.com/wiggin77), [y4aniv](https://github.com/y4aniv), [yasserfaraazkhan](https://github.com/yasserfaraazkhan) - ----- - -(release-v9-0-major-release)= -## Release v9.0 - [Major Release](https://docs.mattermost.com/upgrade/release-definitions.html#major-release) - -- **9.0.5, released 2023-11-29** - - Mattermost v9.0.5 contains medium severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). - - Mattermost v9.0.5 contains no database or functional changes. - - Pre-packaged Calls plugin version [v0.21.1](https://github.com/mattermost/mattermost-plugin-calls/releases/tag/v0.21.1). -- **9.0.4, released 2023-11-13** - - Mattermost v9.0.4 contains low to high severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). - - Mattermost v9.0.4 contains no database or functional changes. - - Pre-packaged Playbooks plugin version [v1.39.1](https://github.com/mattermost/mattermost-plugin-playbooks/releases/tag/v1.39.1). - - Fixed an issue where the **About Mattermost** dialog reported an incorrect server version. -- **9.0.3, released 2023-11-06** - - Mattermost v9.0.3 contains low to high severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). - - Mattermost v9.0.3 contains no database or functional changes. -- **9.0.2, released 2023-10-27** - - Mattermost v9.0.2 contains low to medium severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). - - Pre-packaged Focalboard plugin [v7.11.4](https://github.com/mattermost/focalboard/releases/tag/v7.11.4). - - Mattermost v9.0.2 contains the following functional changes: - - Added a new configuration setting ``MaxFieldSize`` to add the ability to size-limit log fields during logging. - - Added a restriction to the mobile Oauth / SAML redirection to match the ``NativeAppSettings.AppCustomURLSchemes`` configuration setting. -- **9.0.1, released 2023-10-06** - - Mattermost v9.0.1 contains low to medium severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). - - Mattermost v9.0.1 contains no database or functional changes. -- **9.0.0, released 2023-09-15** - - Original 9.0.0 release - -### Important Upgrade Notes - - Removed the deprecated Insights feature. - - Mattermost Boards and various other plugins have transitioned to being fully community supported. See this [forum post](https://forum.mattermost.com/t/upcoming-product-changes-to-boards-and-various-plugins/16669) for more details. - - The ``channel_viewed`` websocket event was changed to ``multiple_channels_viewed``, and is now only triggered for channels that actually have unread messages. - -```{Important} -If you upgrade from a release earlier than v8.1, please read the other [Important Upgrade Notes](https://docs.mattermost.com/upgrade/important-upgrade-notes.html). -``` - -### Highlights - -#### Dev/Sec/ChatOps in Strict Security Environments with Jira, Confluence, and Mattermost - - Accelerate mission-critical workflows that keep your team aligned and your data secure on [the Mattermost and Atlassian platforms](https://mattermost.com/atlassian/). - -#### Air-Gapped, Edge-Ready Generative AI with Defense Unicorn's LeapfrogAI - - Deploy and utilize local GenAI models in edge, air-gapped, and zero-trust environments with [LeapfrogAI and Mattermost](https://defenseunicorns.com/leapfrogai). - -#### AI-Accelerated Collaboration - - Mattermost partner Mobius Logic has enhanced the MS Teams Connector for the Microsoft 365 platform by embedding Mattermost directly inside [Microsoft Teams](https://docs.mattermost.com/about/mattermost-for-microsoft-teams.html). - -#### MLOps and Secure Federation with Customer Compliance - - Our partnership with SOS International (SOSi) enables the integration of advanced military-grade federation using XMPP. Read the [exoINSIGHT announcement from Exovera](https://exovera.com/press-release/exovera-unveils-exoinsight/). - -#### Improving Your Organization’s Core Collaboration - - To optimize the core platform experience, we are reinforcing the fundamentals to ensure Mattermost continues being resilient, stable, and best-in-breed for your critical operations. - -### Improvements - -#### User Interface (UI) - - The number of channel members is now shown in the **Browse channels** modal. - - An error is now displayed if a post edit history fails to load. - - Added functionality to bulk mark a whole channel category as read. - - Removed Boards product tour code. - - Replaced Gfycat with Giphy in the gif picker. - - Pre-packaged Calls version v0.19.0. - - Updated Focalboard plugin version to 7.11.3. - - Pre-packaged Playbooks version 1.38.1. - - Upgraded prepackaged Zoom plugin to v1.6.2. - - Upgraded prepackaged Antivirus plugin version to 1.0.0. - -#### Administration - - API examples are now updated to reflect latest Go API conventions, deprecating older code samples. - - Updated the public server module version to v0.0.8. - - Added a ``Post Action`` plugin hook to allow plugins to register new items in the post menu. - - Added a ``Post Editor Action`` plugin hook to allow plugins to register new items in the post editor menu. - - Improved logging on plugin initialization, activation, and removal. - - Removed the deprecated ``ManifestExecutables`` struct. - - Removed the deprecated ``UserAuth.Password`` field. - - [Remote users](https://docs.mattermost.com/onboard/shared-channels.html) are no longer counted as part of the license. - - Improved data retention logs. - - Removed ``/opengraph`` endpoint as it was unused. - - Transitionally prepackaged plugins are now installed to the filestore for continuity when a future release stops prepackaging those plugins. - - Removed the deprecated ``Manifest.RequiredConfig`` field. - - Added a ``NotificationWillBePushed`` plugin hook invoked before the push notification is processed and sent to the notification service. Plugins may modify or reject the push notification. - - Added a `SendPushNotification` plugin api method which allows plugins to send push notifications to a specific user's mobile sessions. - - Disabled ``PluginSettings.EnableRemoteMarketplace`` functionality. - -### Bug Fixes - - Fixed the error returned by ``PUT /api/v4/channels/{channelid}`` when the provided name already existed in the team. - - Fixed an issue where CRLF line endings passed to mmctl commands were not being stripped from commands. - - Fixed an issue where text copied from Microsoft OneNote is pasted as an image. - - Fixed an issue preventing successful activation of trial licenses. - - Fixed an issue where a custom group wouldn't get marked as a mention if it was not part of the webapp's local state. - - Fixed an issue with the in-product marketplace theming. - -### 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 all plans: - - Under ``ServiceSettings`` in the ``config.json``: - - Added ``GiphySdkKey`` to replace Gfycat with Giphy in the gif picker. - -### Go Version - - v9.0 is built with Go ``v1.19.5``. - -### Open Source Components - - Added ``@giphy/js-fetch-api`` and ``@giphy/react-components`` to https://github.com/mattermost/mattermost/. - - Added ``@react-native/eslint-config``, ``@react-native/metro-config``, and ``@tsconfig/react-native`` to https://github.com/mattermost/mattermost-mobile/. - -### Known Issues - - Adding an @mention at the start of a post draft and pressing the left or right arrow key can clear the post draft and the undo history [MM-33823](https://mattermost.atlassian.net/browse/MM-33823). - - 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. - - The Playbooks left-hand sidebar doesn't update when a user is added to a run or playbook without a refresh. - - If a user isn't a member of a configured broadcast channel, posting a status update might fail without any error feedback. As a temporary workaround, join the configured broadcast channels, or remove those channels from the run configuration. - - The Playbooks left-hand sidebar does not update when a user is added to a run or playbook without a refresh. - -### Contributors - - [abdulsmapara](https://github.com/abdulsmapara), [agarciamontoro](https://github.com/agarciamontoro), [agnivade](https://github.com/agnivade), [akaravashkin](https://github.com/akaravashkin), [amyblais](https://github.com/amyblais), [andrleite](https://github.com/andrleite), [angeloskyratzakos](https://github.com/angeloskyratzakos), [apollo13](https://github.com/apollo13), [aqurilla](https://github.com/aqurilla), [ayusht2810](https://github.com/ayusht2810), [azigler](https://github.com/azigler), [bbodenmiller](https://github.com/bbodenmiller), [BenCookie95](https://github.com/BenCookie95), [Benjamin-Loison](https://github.com/Benjamin-Loison), [calebroseland](https://github.com/calebroseland), [cdmwebs](https://github.com/cdmwebs), [chumano](https://github.com/chumano), [CI-YU](https://github.com/CI-YU), [Coelho](https://translate.mattermost.com/user/Coelho), [cpoile](https://github.com/cpoile), [crspeller](https://github.com/crspeller), [ctlaltdieliet](https://translate.mattermost.com/user/ctlaltdieliet), [cwarnermm](https://github.com/cwarnermm), [danielsischy](https://github.com/danielsischy), [deivisonrpg](https://github.com/deivisonrpg), [devinbinnie](https://github.com/devinbinnie), [djanda97](https://github.com/djanda97), [douglasstasiak](https://github.com/douglasstasiak), [Eleferen](https://translate.mattermost.com/user/Eleferen), [enahum](https://github.com/enahum), [esarafianou](https://github.com/esarafianou), [esethna](https://github.com/esethna), [gabrieljackson](https://github.com/gabrieljackson), [gary-sixgen](https://github.com/gary-sixgen), [Gobbit69](https://translate.mattermost.com/user/Gobbit69), [grubbins](https://github.com/grubbins), [guneshsji](https://github.com/guneshsji), [hannaparks](https://github.com/hannaparks), [hanzei](https://github.com/hanzei), [harshal2030](https://github.com/harshal2030), [harshilsharma63](https://github.com/harshilsharma63), [hmhealey](https://github.com/hmhealey), [hpkhanh1610](https://github.com/hpkhanh1610), [ifoukarakis](https://github.com/ifoukarakis), [isacikgoz](https://github.com/isacikgoz), [it33](https://github.com/it33), [ivakorin](https://github.com/ivakorin), [jasonblais](https://github.com/jasonblais), [jespino](https://github.com/jespino), [johndavidlugtu](https://github.com/johndavidlugtu), [johnsonbrothers](https://github.com/johnsonbrothers), [jprusch](https://github.com/jprusch), [JulienTant](https://github.com/JulienTant), [kaakaa](https://github.com/kaakaa), [kayazeren](https://github.com/kayazeren), [Kshitij-Katiyar](https://github.com/Kshitij-Katiyar), [kyeongsoosoo](https://github.com/kyeongsoosoo), [larkox](https://github.com/larkox), [lieut-data](https://github.com/lieut-data), [LimJiAn](https://github.com/LimJiAn), [lindalumitchell](https://github.com/lindalumitchell), [lindy65](https://github.com/lindy65), [lynn915](https://github.com/lynn915), [M-ZubairAhmed](https://github.com/M-ZubairAhmed), [mahmoudfarouq](https://github.com/mahmoudfarouq), [majo](https://translate.mattermost.com/user/majo), [manojmalik20](https://github.com/manojmalik20), [marianunez](https://github.com/marianunez), [maruTA-bis5](https://translate.mattermost.com/user/maruTA-bis5), [master7](https://translate.mattermost.com/user/master7), [matt-w99](https://github.com/matt-w99), [matthew-w](https://translate.mattermost.com/user/matthew-w), [matthewbirtch](https://github.com/matthewbirtch), [MatthewDorner](https://github.com/MatthewDorner), [mgdelacroix](https://github.com/mgdelacroix), [mickmister](https://github.com/mickmister), [milotype](https://translate.mattermost.com/user/milotype), [mvitale1989](https://github.com/mvitale1989), [nickmisasi](https://github.com/nickmisasi), [panoramix360](https://github.com/panoramix360), [Partizann](https://github.com/Partizann), [penghao_chn](https://translate.mattermost.com/user/penghao_chn), [phoinixgrr](https://github.com/phoinixgrr), [pjenicot](https://translate.mattermost.com/user/pjenicot), [pvev](https://github.com/pvev), [raghavaggarwal2308](https://github.com/raghavaggarwal2308), [RichardScottOZ](https://github.com/RichardScottOZ), [robinsdm](https://github.com/robinsdm), [saturninoabril](https://github.com/saturninoabril), [sbishel](https://github.com/sbishel), [Sharuru](https://github.com/Sharuru), [ShrootBuck](https://github.com/ShrootBuck), [sinansonmez](https://github.com/sinansonmez), [sri-byte](https://github.com/sri-byte), [stafot](https://github.com/stafot), [StreakInTheSky](https://github.com/StreakInTheSky), [streamer45](https://github.com/streamer45), [stylianosrigas](https://github.com/stylianosrigas), [svelle](https://github.com/svelle), [tasawar-hussain](https://github.com/tasawar-hussain), [TealWater](https://github.com/TealWater), [thinkGeist](https://github.com/thinkGeist), [ThrRip](https://translate.mattermost.com/user/ThrRip), [timmycheng](https://translate.mattermost.com/user/timmycheng), [toninis](https://github.com/toninis), [tschuyebuhl](https://github.com/tschuyebuhl), [wiggin77](https://github.com/wiggin77), [Willyfrog](https://github.com/Willyfrog), [y4aniv](https://translate.mattermost.com/user/y4aniv), [yash2189](https://github.com/yash2189), [yasserfaraazkhan](https://github.com/yasserfaraazkhan), [yomiadetutu1](https://github.com/yomiadetutu1), [ZubairImtiaz3](https://github.com/ZubairImtiaz3) diff --git a/source/product-overview/product-overview-index.rst b/source/product-overview/product-overview-index.rst index ee36fe05e28..60ed16b9eb2 100644 --- a/source/product-overview/product-overview-index.rst +++ b/source/product-overview/product-overview-index.rst @@ -15,7 +15,6 @@ Overview /product-overview/certifications-and-compliance.rst /product-overview/accessibility-compliance-policy.rst /product-overview/releases-lifecycle.rst - /product-overview/client-availability.rst /product-overview/frequently-asked-questions.rst The Intelligent Mission Environment (IME) @@ -57,7 +56,7 @@ Messaging collaboration .. image:: /images/messaging-new-hero.png :alt: An image showing Mattermost messaging collaboration, highlighting the ability to create public and private channels, direct messages, and threaded conversations for secure, real-time communication across web, desktop, and mobile. -See the :doc:`Client availability ` documentation to learn which features are available on different Mattermost clients. +See the :doc:`Client availability ` documentation to learn which features are available on different Mattermost clients. Workflow automation ~~~~~~~~~~~~~~~~~~~ diff --git a/source/product-overview/release-policy.md b/source/product-overview/release-policy.md index e16cfe9bb9f..08d904d6d59 100644 --- a/source/product-overview/release-policy.md +++ b/source/product-overview/release-policy.md @@ -87,15 +87,27 @@ For deprecated ESRs, an email announcement is sent 3 months in advance. We also ### Legacy Releases -The following table lists all releases across Mattermost v7.0 and v8.0, including ESRs. See the [unsupported legacy releases](https://docs.mattermost.com/product-overview/unsupported-legacy-releases.html) documentation for comprehensive changelog details for these legacy releases. +The following table lists all releases across Mattermost v7.0, v8.0, and v9.0, including ESRs. See the [unsupported legacy releases](https://docs.mattermost.com/product-overview/unsupported-legacy-releases.html) documentation for comprehensive changelog details for these legacy releases. ```{Important} - If you're on a legacy Mattermost release prior to v7.1, in order to take advantage of newer Mattermost releases, you must upgrade to [v7.1 ESR](https://docs.mattermost.com/product-overview/unsupported-legacy-releases.html#release-v7-1-extended-support-release) at a minimum. -- Upgrading from ESR-to-ESR (``major`` -> ``major_next``) is fully supported and tested. However, upgrading from ESR-to-ESR (``major`` to ``major+2``) is supported, but not tested. If you plan to upgrade across multiple releases, we strongly recommend upgrading from an ESR to another ESR. For example, if you're upgrading from v7.1 ESR, upgrade to the [v7.8 ESR](https://docs.mattermost.com/product-overview/unsupported-legacy-releases.html#release-v7-8-extended-support-release), or the [v8.1 ESR](https://docs.mattermost.com/product-overview/unsupported-legacy-releases.html#release-v8-1-extended-support-release) before attempting to upgrade to the [v9.5 ESR](https://docs.mattermost.com/product-overview/mattermost-v9-changelog.html#release-v9-5-extended-support-release) or the v9.11 ESR. +- Upgrading from one Extended Support Release (ESR) to the next ESR (``major`` -> ``major_next``) is fully supported and tested. However, upgrading across multiple ESR versions (``major`` to ``major+2``) is supported, but not tested. If you plan to skip versions, we strongly recommend upgrading only between ESR releases. For example, if you're upgrading from v8.1 ESR, upgrade to the v9.5 ESR or the v9.11 ESR before attempting to upgrade to the [v10.5 ESR](https://docs.mattermost.com/product-overview/mattermost-v10-changelog.html#release-v10-5-extended-support-release) or the [v10.11 ESR](https://docs.mattermost.com/product-overview/mattermost-v10-changelog.html#release-v10-11-extended-support-release). ``` | **Release** | **Release Type** | **Support ended** | |:---|:---|:---| +| v9.11 | Extended | 2025-05-15 | +| v9.10 | Feature | 2024-10-15 | +| v9.9 | Feature | 2024-09-15 | +| v9.8 | Feature | 2024-08-15 | +| v9.7 | Feature | 2024-07-15 | +| v9.6 | Feature | 2024-06-15 | +| v9.5 | Extended | 2024-11-15 | +| v9.4 | Feature | 2024-04-15 | +| v9.3 | Feature | 2024-03-15 | +| v9.2 | Feature | 2024-02-15 | +| v9.1 | Feature | 2024-01-15 | +| v9.0 | Major | 2023-12-15 | | v8.1 | Extended | 2024-05-15 | | v8.0 | Major | 2023-10-15 | | v7.10 | Feature | 2023-07-15 | diff --git a/source/product-overview/server.rst b/source/product-overview/server.rst index a44af926079..692096833a0 100644 --- a/source/product-overview/server.rst +++ b/source/product-overview/server.rst @@ -16,7 +16,6 @@ Mattermost Server installs as a single compiled binary file that includes the RE /product-overview/mattermost-server-releases.md /product-overview/mattermost-v10-changelog.md - /product-overview/mattermost-v9-changelog.md /product-overview/unsupported-legacy-releases.md /product-overview/version-archive.rst @@ -24,6 +23,5 @@ Learn more about: * :doc:`Server releases ` * :doc:`v10 changelog ` -* :doc:`v9 changelog ` * :doc:`Unsupported legacy releases ` -* :doc:`Version archive ` \ No newline at end of file +* :doc:`Version archive ` diff --git a/source/product-overview/unsupported-legacy-releases.md b/source/product-overview/unsupported-legacy-releases.md index f1c255cd3bb..84ecdc298ef 100644 --- a/source/product-overview/unsupported-legacy-releases.md +++ b/source/product-overview/unsupported-legacy-releases.md @@ -1,5 +1,1469 @@ # Unsupported Legacy Releases +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. + +```{Important} +```{include} common-esr-support-upgrade.md +``` + +(release-v9-11-extended-support-release)= +## Release v9.11 - [Extended Support Release](https://docs.mattermost.com/about/release-policy.html#release-types) + +- **9.11.18, released 2025-07-22** + - Mattermost v9.11.18 contains low to high severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). + - Pre-packaged Boards plugin version [v9.1.5](https://github.com/mattermost/mattermost-plugin-boards/releases/tag/v9.1.5). + - Mattermost v9.11.18 contains no database or functional changes. +- **9.11.17, released 2025-06-18** + - Mattermost v9.11.17 contains high severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). + - Pre-packaged Boards plugin version [v9.1.3](https://github.com/mattermost/mattermost-plugin-boards/releases/tag/v9.1.3). + - Pre-packaged Playbooks plugin [v1.41.1](https://github.com/mattermost/mattermost-plugin-playbooks/releases/tag/v1.41.1). + - Mattermost v9.11.17 contains no database or functional changes. +- **9.11.16, released 2025-05-21** + - Mattermost v9.11.16 contains a Critical severity level security fix. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.html) to this release as soon as possible is highly 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.com/security-vulnerability-report/). + - Mattermost v9.11.16 contains no database or functional changes. +- **9.11.15, released 2025-05-09** + - Mattermost v9.11.15 contains low to medium severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). + - Brought back the bug fix for [MM-61361](https://mattermost.atlassian.net/browse/MM-61361), since the performance regression has been fixed by tweaking the offending SQL query. + - Mattermost v9.11.15 contains the following database changes: + - A new index was added to the ``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. +- **9.11.14, released 2025-05-05** + - Mattermost v9.11.14 contains a medium severity level security fix. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). + - Reverted a bug fix for [MM-61361](https://mattermost.atlassian.net/browse/MM-61361) that likely introduced a performance regression. + - Mattermost v9.11.14 contains no database or functional changes. +- **9.11.13, released 2025-04-29** + - Mattermost v9.11.13 contains low to medium severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). + - Mattermost v9.11.13 contains no database or functional changes. +- **9.11.12, released 2025-04-15** + - Mattermost v9.11.12 contains low to medium severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). + - Stopped logging websocket PING events received by the server [MM-63693](https://mattermost.atlassian.net/browse/MM-63693). + - Mattermost v9.11.12 contains no database or functional changes. +- **9.11.11, released 2025-03-24** + - Mattermost v9.11.11 contains low to medium severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). + - Pre-packaged Playbooks plugin [v1.41.0](https://github.com/mattermost/mattermost-plugin-playbooks/releases/tag/v1.41.0). + - Mattermost v9.11.11 contains no database or functional changes. +- **9.11.10, released 2025-03-17** + - Mattermost v9.11.10 contains low to high severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). + - Fixed errors logged by performance telemetry due to certain browser extensions [MM-62371](https://mattermost.atlassian.net/browse/MM-62371). + - Pre-packaged Calls plugin version [v0.29.8](https://github.com/mattermost/mattermost-plugin-calls/releases/tag/v0.29.8). + - Mattermost v9.11.10 contains no database or functional changes. +- **9.11.9, released 2025-02-19** + - Mattermost v9.11.9 contains low to high severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). + - Pre-packaged Boards plugin [v9.1.1](https://github.com/mattermost/mattermost-plugin-boards/releases/tag/v9.1.1). + - Fixed an issue in Compliance Exports whereby a missing file attachment in S3 could prevent the export run from completing [MM-62527](https://mattermost.atlassian.net/browse/MM-62527). + - Mattermost v9.11.9 contains no database or functional changes. +- **9.11.8, released 2025-01-22** + - Mattermost v9.11.8 contains critical severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). + - Pre-packaged Boards plugin [v9.0.5](https://github.com/mattermost/mattermost-plugin-boards/releases/tag/v9.0.5). + - Pre-packaged Channel Export plugin [v1.2.1](https://github.com/mattermost/mattermost-plugin-channel-export/releases/tag/v1.2.1). + - Pre-packaged Calls plugin [v0.29.7](https://github.com/mattermost/mattermost-plugin-calls/releases/tag/v0.29.7). + - Fixed a panic during LDAP synchronization [MM-61239](https://mattermost.atlassian.net/browse/MM-61239). + - Fixed an issue where the bulk export retention job would accidentally delete non-bulk export files and directories [MM-60888](https://mattermost.atlassian.net/browse/MM-60888). + - Fixed an issue where new messages from new channels wouldn't appear in the sidebar after reconnecting the websocket [MM-61361](https://mattermost.atlassian.net/browse/MM-61361). + - Mattermost v9.11.8 contains no database or functional changes. +- **9.11.7, released 2025-01-15** + - Mattermost v9.11.7 contains low to medium severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). + - Fixed an issue with the web app status not being updated correctly for the current user [MM-59952](https://mattermost.atlassian.net/browse/MM-59952). + - Pre-packaged Boards plugin [v9.0.2](https://github.com/mattermost/mattermost-plugin-boards/releases/tag/v9.0.2). + - Fixed an issue with insertion errors to ``LinkMetadata`` table. + - Fixed an issue where the scroll position reset when custom emojis were requested [MM-62102](https://mattermost.atlassian.net/browse/MM-62102). + - Mattermost v9.11.7 contains the following database changes: + - Fixed an issue where Direct and Group Messages with a ``DeleteAt`` flag in the database could cause issues with some APIs. +- **9.11.6, released 2024-12-10** + - Mattermost v9.11.6 contains low to medium severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). + - A 200 response is now returned for HEAD requests to a sub-path rather than responding with a 302. This fixes mobile devices trying to connect to a server hosted on a sub-path [MM-58042](https://mattermost.atlassian.net/browse/MM-58042). + - Pre-packaged Calls plugin [v0.29.6](https://github.com/mattermost/mattermost-plugin-calls/releases/tag/v0.29.6). + - Fixed an issue with incorrect reporting in the **Server Updates** section in **System Console > Workspace Optimizations** [MM-62030](https://mattermost.atlassian.net/browse/MM-62030). + - Mattermost v9.11.6 contains no database or functional changes. +- **9.11.5, released 2024-11-14** + - Mattermost v9.11.5 contains medium severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). + - Pre-packaged Calls plugin [v0.29.4](https://github.com/mattermost/mattermost-plugin-calls/releases/tag/v0.29.4). + - Mattermost v9.11.5 contains no database or functional changes. +- **9.11.4, released 2024-10-28** + - Mattermost v9.11.4 contains a high severity level security fix. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). + - Fixed an issue where users would not see channels they were added to/messages from those channels in clustered environments [MM-59911](https://mattermost.atlassian.net/browse/MM-59911). + - Mattermost v9.11.4 contains no database or functional changes. +- **9.11.3, released 2024-10-10** + - Mattermost v9.11.3 contains low to medium severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). + - Fixed an issue with YouTube previews no longer being displayed [MM-60351](https://mattermost.atlassian.net/browse/MM-60351). + - Improved the performance of LDAP sync jobs when group-contained teams and channels are used [MM-60253](https://mattermost.atlassian.net/browse/MM-60253). + - Mattermost v9.11.3 contains no database or functional changes. +- **9.11.2, released 2024-09-26** + - Mattermost v9.11.2 contains low to medium severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). + - Added Mattermost user survey plugin to pre-packaged plugins, [v1.1.1](https://github.com/mattermost/mattermost-plugin-user-survey/releases). + - Pre-packaged Calls plugin [v0.29.2](https://github.com/mattermost/mattermost-plugin-calls/releases/tag/v0.29.2). + - Pre-packaged Playbooks plugin [v1.40.0](https://github.com/mattermost/mattermost-plugin-playbooks/releases/tag/v1.40.0). + - Fixed an issue where the **Edit Post Time Limit** button was not being displayed in the System Console ([MM-58529](https://mattermost.atlassian.net/browse/MM-58529), [MM-58824](https://mattermost.atlassian.net/browse/MM-58824)). + - Fixed racy use of session in ``NewWebConn`` [MM-60307](https://mattermost.atlassian.net/browse/MM-60307). + - Mattermost v9.11.2 contains the following functional change: + - Added a configuration setting **NativeAppSettings > MobileExternalBrowser** that tells the Mobile app to perform SSO Authentication using the external default browser [MM-60332](https://mattermost.atlassian.net/browse/MM-60332). +- **9.11.1, released 2024-08-27** + - Mattermost v9.11.1 contains low to medium severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). + - Mattermost v9.11.1 contains no database or functional changes. +- **9.11.0, released 2024-08-16** + - Original 9.11.0 release. + +### Important Upgrade Notes + + - Added support for Elasticsearch v8. Also added Beta support for [OpenSearch v1.x and v2.x](https://opensearch.org/). A new config setting ``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. + - Mattermost supports Elasticsearch v7.17+. However, we recommend upgrading your Elasticsearch v7 instance to v8.x. See the [Elasticsearch upgrade](https://www.elastic.co/guide/en/elasticsearch/reference/current/setup-upgrade.html) documentation for details. + - When using Elasticsearch v8, ensure you set ``action.destructive_requires_name`` to ``false`` in ``elasticsearch.yml`` to allow for wildcard operations to work. + +```{Important} +**AWS Elasticsearch** + +If you're using AWS Elasticsearch, you must: +1. Upgrade to AWS OpenSearch. Refer to the [OpenSearch upgrade](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/version-migration.html) documentation for details. +2. Disable "compatibility mode" in OpenSearch. +3. Upgrade Mattermost server. +4. Update the Mattermost `ElasticsearchSettings.Backend` configuration setting value from `elasticsearch` to `opensearch` manually or using [mmctl](https://docs.mattermost.com/manage/mmctl-command-line-tool.html#mmctl-config-set). This value cannot be changed using the System Console. See the Mattermost [Elasticsearch backend type](https://docs.mattermost.com/configure/environment-configuration-settings.html#elastic-backendtype) documentation for additional details. +5. Restart the Mattermost server. +``` + +### Compatibility + - Updated minimum Edge and Chrome versions to 126+. + - Added Ubuntu Noble support. + +```{Important} +If you upgrade from a release earlier than v9.5, please read the other [Important Upgrade Notes](https://docs.mattermost.com/upgrade/important-upgrade-notes.html). +``` + +### Improvements + +See [this walkthrough video](https://mattermost.com/video/mattermost-v9-11-changelog/) on some of the improvements in our latest release below. + +#### User Interface (UI) + - Pre-packaged Calls version [v0.29.1](https://github.com/mattermost/mattermost-plugin-calls/releases/tag/v0.29.1). + - Pre-packaged GitHub plugin version [v2.3.0](https://github.com/mattermost/mattermost-plugin-github/releases/tag/v2.3.0). + - Added user interface improvements to the keyboard shortcuts modal. + - Added a message "Editing this message with an ``@mention`` will not notify the recipient" in the post edit dialog. + - Made the appearance of several tooltips more consistent. + - Updated the help text in the **Direct Messages** modal. + - Emojis are now placed at cursor position while editing messages. + - Made keyboard shortcuts modal content DIV-accessible via the keyboard. + - Added Channel Bookmarks user interface (disabled by default and behind a feature flag). + +#### Administration + - Added a new feature where an admin with user management permission can now edit a user's settings in **System Console > Users**. + - Added download functionality for admins to download server logs from **Server Logs** page in the **System Console**. + - LDAP vendor errors are now included in the Support Packet. + - Added [metadata](https://docs.mattermost.com/manage/admin/generating-support-packet.html#contents-of-a-support-packet) to the Support Packet. + - We are now adding the user's ID and session ID to the audit log's Actor field for the login event, to match what we provide for the logout event. + - Added support for custom status in bulk export/import. + - Marked the ``RemoteTeamId`` field of the ``RemoteCluster`` entity as deprecated. + - Added log ``Name`` and ``DisplayName`` of groups. + - Logged fields of users are now updated. + +#### Performance + - Added platform related information to the notification metrics. + - Added additional information to INP and LCP client metrics. + - Added minor performance improvements to webapp initialization. + +#### mmctl + - Added two new commands to mmctl, ``mmctl job list`` and ``mmctl job update``. + - Panic message is now printed when mmctl panics. + - Setting ``AdvancedLoggingJSON`` via mmctl is now supported. + +### Bug Fixes + - Fixed an issue that displayed a wrong count for custom group members on the notification warning. + - Fixed a panic when the password was too long. + - Fixed an issue where configuration patches through mmctl did not correctly merge plugin configuration values. + - Fixed issues with the OpenID local development. + - Fixed an issue where Latex was not rendered in a code block as code when Latex rendering was disabled. + - Fixed an issue with saving custom roles. + - Fixed an issue with the left-hand side scrollbar auto-hide functionality for Chrome and Safari. + - Fixed Group Message to private channel conversion edge cases. + - Fixed an issue where users with the user management permission were unable to view the list of users in the **System Console > Users** page. + - Fixed more web app performance reports being marked as outdated after a user's computer woke up from sleep. + +### config.json +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. + +#### Changes to all plans: + - Under ``ServiceSettings`` in ``config.json``: + - Added ``TerminateSessionsOnPasswordChange`` to configure the sessions revocation during password resets. + +#### Changes to the Enterprise plan: + - Under ``ElasticsearchSettings`` in ``config.json``: + - Added ``Backend`` to differentiate between Elasticsearch and OpenSearch. The default value is ``elasticsearch``. + +### API Changes + - Added new API endpoints to manage remote clusters. + - Added two new query parameters to ``GET /api/v4/jobs, job_type`` and status. + - Added a new endpoint ``PATCH /api/v4/jobs/{job_id}/status``. + - Updated ``AddChannelMember`` to accept a list of userIds. + - Added six new permissions to manage the status of particular jobs: + - ``PermissionManagePostBleveIndexesJob`` + - ``PermissionManageDataRetentionJob`` + - ``PermissionManageComplianceExportJob`` + - ``PermissionManageElasticsearchPostIndexingJob`` + - ``PermissionManageElasticsearchPostAggregationJob`` + - ``PermissionManageLdapSyncJob`` + +### Go Version + - v9.11 is built with Go ``v1.21.8``. + +### Open Source Components + - Removed ``stylelint``, and added ``elastic/go-elasticsearch`` to https://github.com/mattermost/mattermost/. + +### Known Issues + - Searching stop words in quotation marks with Elasticsearch enabled returns more than just the searched terms. + - Slack import through the CLI fails if email notifications are enabled. + - The Playbooks left-hand sidebar doesn't update when a user is added to a run or playbook without a refresh. + - If a user isn't a member of a configured broadcast channel, posting a status update might fail without any error feedback. As a temporary workaround, join the configured broadcast channels, or remove those channels from the run configuration. + +### Contributors + - [agarciamontoro](https://github.com/agarciamontoro), [agnivade](https://github.com/agnivade), [amyblais](https://github.com/amyblais), [andreabia](https://translate.mattermost.com/user/andreabia), [andrleite](https://github.com/andrleite), [angeloskyratzakos](https://github.com/angeloskyratzakos), [Aryakoste](https://github.com/Aryakoste), [asaadmahmood](https://github.com/asaadmahmood), [AshishDhama](https://github.com/AshishDhama), [ayusht2810](https://github.com/ayusht2810), [bbodenmiller](https://github.com/bbodenmiller), [BenCookie95](https://github.com/BenCookie95), [BrandonS09](https://github.com/BrandonS09), [calebroseland](https://github.com/calebroseland), [Camillarhi](https://github.com/Camillarhi), [catalintomai](https://github.com/catalintomai), [Celeo](https://github.com/Celeo), [chessmadridista](https://github.com/chessmadridista), [ckaznable](https://github.com/ckaznable), [cpoile](https://github.com/cpoile), [crspeller](https://github.com/crspeller), [ctlaltdieliet](https://translate.mattermost.com/user/ctlaltdieliet), [cwarnermm](https://github.com/cwarnermm), [danielsischy](https://github.com/danielsischy), [devinbinnie](https://github.com/devinbinnie), [Eleferen](https://translate.mattermost.com/user/Eleferen), [enahum](https://github.com/enahum), [enzowritescode](https://github.com/enzowritescode), [ewwollesen](https://github.com/ewwollesen), [fmartingr](https://github.com/fmartingr), [frankps](https://translate.mattermost.com/user/frankps), [gabrieljackson](https://github.com/gabrieljackson), [Gesare5](https://github.com/Gesare5), [grinapo](https://github.com/grinapo), [hanzei](https://github.com/hanzei), [harmeet01singh](https://github.com/harmeet01singh), [harshilsharma63](https://github.com/harshilsharma63), [hmhealey](https://github.com/hmhealey), [ifoukarakis](https://github.com/ifoukarakis), [imanmagomedov.said](https://translate.mattermost.com/user/imanmagomedov.said), [isacikgoz](https://github.com/isacikgoz), [jespino](https://github.com/jespino), [jprusch](https://github.com/jprusch), [JulienTant](https://github.com/JulienTant), [jwilander](https://github.com/jwilander), [kaakaa](https://translate.mattermost.com/user/kaakaa), [kalil0321](https://github.com/kalil0321), [KellieSue](https://github.com/KellieSue), [Kshitij-Katiyar](https://github.com/Kshitij-Katiyar), [larkox](https://github.com/larkox), [lieut-data](https://github.com/lieut-data), [M-ZubairAhmed](https://github.com/M-ZubairAhmed), [majo](https://translate.mattermost.com/user/majo), [marianunez](https://github.com/marianunez), [master7](https://translate.mattermost.com/user/master7), [matt-w99](https://github.com/matt-w99), [matthewbirtch](https://github.com/matthewbirtch), [matthew-w](https://translate.mattermost.com/user/matthew-w), [MeHow25](https://github.com/MeHow25), [mgdelacroix](https://github.com/mgdelacroix), [mickmister](https://github.com/mickmister), [milotype](https://translate.mattermost.com/user/milotype), [Mohamed-sobhi95](https://translate.mattermost.com/user/Mohamed-sobhi95), [mvitale1989](https://github.com/mvitale1989), [natalie-hub](https://github.com/natalie-hub), [nickmisasi](https://github.com/nickmisasi), [ningthoujamSwamikumar](https://github.com/ningthoujamSwamikumar), [Pawel1894](https://github.com/Pawel1894), [phoinixgrr](https://github.com/phoinixgrr), [poppfredslund](https://translate.mattermost.com/user/poppfredslund), [pvev](https://github.com/pvev), [raghavaggarwal2308](https://github.com/raghavaggarwal2308), [rahimrahman](https://github.com/rahimrahman), [Rajat-Dabade](https://github.com/Rajat-Dabade), [recontech404](https://github.com/recontech404), [rOt779kVceSgL](https://translate.mattermost.com/user/rOt779kVceSgL), [sadohert](https://github.com/sadohert), [saturninoabril](https://github.com/saturninoabril), [sbishel](https://github.com/sbishel), [shaon72](https://github.com/shaon72), [Sharuru](https://translate.mattermost.com/user/Sharuru), [shieldsjared](https://github.com/shieldsjared), [stafot](https://github.com/stafot), [streamer45](https://github.com/streamer45), [suraj-anthwal](https://github.com/suraj-anthwal), [svelle](https://github.com/svelle), [ThrRip](https://translate.mattermost.com/user/ThrRip), [tnir](https://github.com/tnir), [toninis](https://github.com/toninis), [varghesejose2020](https://github.com/varghesejose2020), [vhaska](https://translate.mattermost.com/user/vhaska), [wiersgallak](https://github.com/wiersgallak), [wiggin77](https://github.com/wiggin77), [yasserfaraazkhan](https://github.com/yasserfaraazkhan), [yomiadetutu1](https://github.com/yomiadetutu1), [ythosa](https://github.com/ythosa), [zenocode-org](https://translate.mattermost.com/user/zenocode-org), [ZubairImtiaz3](https://github.com/ZubairImtiaz3) + +(release-v9-10-feature-release)= +## Release v9.10 - [Feature Release](https://docs.mattermost.com/upgrade/release-definitions.html#feature-release) + +- **9.10.3, released 2024-09-26** + - Mattermost v9.10.3 contains low to medium severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). + - Pre-packaged Playbooks plugin [v1.40.0](https://github.com/mattermost/mattermost-plugin-playbooks/releases/tag/v1.40.0). + - Mattermost v9.10.3 contains no database or functional changes. +- **9.10.2, released 2024-08-27** + - Mattermost v9.10.2 contains low to medium severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). + - Mattermost v9.10.2 contains no database or functional changes. +- **9.10.1, released 2024-07-22** + - Mattermost v9.10.1 contains low to medium severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). + - Pre-packaged Mattermost Copilot plugin version [v0.8.3](https://github.com/mattermost/mattermost-plugin-ai/releases/tag/v0.8.3). + - Ensured that the web app only requests notification permissions when needed. Fixed an issue with desktop notifications not being sent on Safari [MM-59416](https://mattermost.atlassian.net/browse/MM-59416). + - Fixed an issue where the app crashed on iOS Safari [MM-59296](https://mattermost.atlassian.net/browse/MM-59296). + - Mattermost v9.10.1 contains no database or functional changes. +- **9.10.0, released 2024-07-16** + - Original 9.10.0 release. + +```{Important} +If you upgrade from a release earlier than v9.5, please read the other [Important Upgrade Notes](https://docs.mattermost.com/upgrade/important-upgrade-notes.html). +``` + +### Improvements + +See [this walkthrough video](https://mattermost.com/video/mattermost-v9-10-changelog/) on some of the improvements in our latest release below. + +#### User Interface (UI) + - Pre-packaged GitLab plugin version [v1.9.1](https://github.com/mattermost/mattermost-plugin-gitlab/releases/tag/v1.9.1). + - Pre-packaged Mattermost Copilot plugin version [v0.8.1](https://github.com/mattermost/mattermost-plugin-ai/releases/tag/v0.8.1). + - Pre-packaged Calls plugin version [v0.28.2](https://github.com/mattermost/mattermost-plugin-calls/releases/tag/v0.28.2). + - Re-designed the user profile popover and improved its performance. + - Added banner to prompt users to allow notification permissions when opening the app in web browsers. + - Increased the width of the profile picture setting to match other user settings. + - Improved screen reader support for the emoji picker. + - Improved the accessibility of plugin buttons in the channel header. + +#### Administration + - Extended ``PluginSiteStatsHandler`` to support more advanced visualization types. + - Stopped broadcasting ``channel_deleted/channel_restored`` messages from private channels to non-members. + +#### Performance + - Added page load time to client performance metrics. + - Added a metric to track time it takes for the Threads view to load. + - Added support for mobile client metrics. + - Increased the range of LCP metrics that can be measured. + - Added polling of ``getStatusesByIds`` and ``getProfilesByIds`` network calls. The interval of which is configurable with the ``UsersStatusAndProfileFetchingPollIntervalMilliseconds`` configuration variable. + - Added defer loading plugins scripts. + +### Bug Fixes + - Fixed an issue where the ``RefreshPostStats`` job could fail. + - Fixed an issue where attempting to create a team with the URL of an existing team showed the wrong error message. + - Fixed an issue where ``visibilitychange`` JavaScript browser event had not been added for updating the user's current timezone. + - Fixed an issue where the last admin in the system was allowed to be demoted. + - Fixed an issue where banners set by system administrators did not stack below system banners, and appeared underneath them instead. Existing system banners have remained unchanged. + - Fixed an issue with an incorrect wrapping of long words in numbered lists. + - Fixed an incorrect behavior of the image proxy when site URL is changed. + - Fixed an issue where cache invalidation messages for websocket connections were not being sent across the cluster, causing missed websocket events. + - Fixed ``EnableClientMetrics`` setting not being available in the System Console. + +### config.json +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. + +#### Changes to all plans: + - Under ``ExperimentalSettings`` in ``config.json``: + - Added ``UsersStatusAndProfileFetchingPollIntervalMilliseconds`` to configure the interval of ``getStatusesByIds`` and ``getProfilesByIds`` network calls. + +### API Changes + - Added a new plugin API endpoint ``GetUsersByIds`` to retrieve a list of users by their ids. + +### Go Version + - v9.10 is built with Go ``v1.21.8``. + +### Known Issues + - Searching stop words in quotation marks with Elasticsearch enabled returns more than just the searched terms. + - 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. + - The Playbooks left-hand sidebar doesn't update when a user is added to a run or playbook without a refresh. + - If a user isn't a member of a configured broadcast channel, posting a status update might fail without any error feedback. As a temporary workaround, join the configured broadcast channels, or remove those channels from the run configuration. + +### Contributors + - [abhijit-singh](https://github.com/abhijit-singh), [aeomin](https://translate.mattermost.com/user/aeomin), [agarciamontoro](https://github.com/agarciamontoro), [agnivade](https://github.com/agnivade), [ahmadJT](https://github.com/ahmadJT), [amyblais](https://github.com/amyblais), [andrleite](https://github.com/andrleite), [apshada](https://github.com/apshada), [Aryakoste](https://github.com/Aryakoste), [asaadmahmood](https://github.com/asaadmahmood), [AshishDhama](https://github.com/AshishDhama), [BenCookie95](https://github.com/BenCookie95), [BillAnderson304](https://github.com/BillAnderson304), [Boruus](https://translate.mattermost.com/user/Boruus), [BrandonS09](https://github.com/BrandonS09), [bruno-keiko](https://github.com/bruno-keiko), [calebroseland](https://github.com/calebroseland), [Camillarhi](https://github.com/Camillarhi), [catalintomai](https://github.com/catalintomai), [chessmadridista](https://github.com/chessmadridista), [ckaznable](https://github.com/ckaznable), [coltoneshaw](https://github.com/coltoneshaw), [cpoile](https://github.com/cpoile), [crspeller](https://github.com/crspeller), [ctlaltdieliet](https://translate.mattermost.com/user/ctlaltdieliet), [cwarnermm](https://github.com/cwarnermm), [devinbinnie](https://github.com/devinbinnie), [DHaussermann](https://github.com/DHaussermann), [DSchalla](https://github.com/DSchalla), [Eleferen](https://translate.mattermost.com/user/Eleferen), [emdecr](https://github.com/emdecr), [enahum](https://github.com/enahum), [enzowritescode](https://github.com/enzowritescode), [esarafianou](https://github.com/esarafianou), [EyeCantCU](https://github.com/EyeCantCU), [ezekielchow](https://github.com/ezekielchow), [fmartingr](https://github.com/fmartingr), [frankps](https://translate.mattermost.com/user/frankps), [gabrieljackson](https://github.com/gabrieljackson), [Gesare5](https://github.com/Gesare5), [hanzei](https://github.com/hanzei), [harshilsharma63](https://github.com/harshilsharma63), [hmhealey](https://github.com/hmhealey), [homerCOD](https://translate.mattermost.com/user/homerCOD), [ifoukarakis](https://github.com/ifoukarakis), [isacikgoz](https://github.com/isacikgoz), [jasonblais](https://github.com/jasonblais), [jespino](https://github.com/jespino), [johnsonbrothers](https://github.com/johnsonbrothers), [jprusch](https://github.com/jprusch), [JtheBAB](https://github.com/JtheBAB), [JulienTant](https://github.com/JulienTant), [kaakaa](https://github.com/kaakaa), [kayazeren](https://github.com/kayazeren), [Kshitij-Katiyar](https://github.com/Kshitij-Katiyar), [larkox](https://github.com/larkox), [lieut-data](https://github.com/lieut-data), [lindalumitchell](https://github.com/lindalumitchell), [lynn915](https://github.com/lynn915), [M-ZubairAhmed](https://github.com/M-ZubairAhmed), [majo](https://translate.mattermost.com/user/majo), [marianunez](https://github.com/marianunez), [maruTA-bis5](https://translate.mattermost.com/user/maruTA-bis5), [master7](https://translate.mattermost.com/user/master7), [matt-w99](https://github.com/matt-w99), [matthew-w](https://translate.mattermost.com/user/matthew-w), [matthewbirtch](https://github.com/matthewbirtch), [MattSilvaa](https://github.com/MattSilvaa), [mgdelacroix](https://github.com/mgdelacroix), [mickmister](https://github.com/mickmister), [mojahani](https://translate.mattermost.com/user/mojahani), [mvitale1989](https://github.com/mvitale1989), [nbruneau71250](https://github.com/nbruneau71250), [nickmisasi](https://github.com/nickmisasi), [phoinixgrr](https://github.com/phoinixgrr), [pvev](https://github.com/pvev), [raghavaggarwal2308](https://github.com/raghavaggarwal2308), [Rajat-Dabade](https://github.com/Rajat-Dabade), [sadohert](https://github.com/sadohert), [saturninoabril](https://github.com/saturninoabril), [sbishel](https://github.com/sbishel), [sri-byte](https://github.com/sri-byte), [stafot](https://github.com/stafot), [streamer45](https://github.com/streamer45), [ThrRip](https://github.com/ThrRip), [tnir](https://github.com/tnir), [toninis](https://github.com/toninis), [varghesejose2020](https://github.com/varghesejose2020), [wiggin77](https://github.com/wiggin77), [willypuzzle](https://github.com/willypuzzle), [yasserfaraazkhan](https://github.com/yasserfaraazkhan), [yomiadetutu1](https://github.com/yomiadetutu1), [zenocode-org](https://github.com/zenocode-org) + +(release-v9-9-feature-release)= +## Release v9.9 - [Feature Release](https://docs.mattermost.com/upgrade/release-definitions.html#feature-release) + +- **9.9.3, released 2024-08-27** + - Mattermost v9.9.3 contains low to medium severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). + - Mattermost v9.9.3 contains no database or functional changes. +- **9.9.2, released 2024-07-22** + - Mattermost v9.9.2 contains low to medium severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). + - Mattermost v9.9.2 contains no database or functional changes. +- **9.9.1, released 2024-07-02** + - Mattermost v9.9.1 contains low to high severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). + - Fixed an issue where banners set by system administrators did not stack below system banners, but rather appeared underneath them. Existing system banners have remained unchanged. + - Removed feature flag which prevented enabling ``MetricsSettings.EnableClientMetrics`` [MM-58823](https://mattermost.atlassian.net/browse/MM-58823). + - Added a page load time to the client performance metrics [MM-58359](https://mattermost.atlassian.net/browse/MM-58359). + - Fixed web app performance reports being marked as outdated after the user's computer woke up from sleep [MM-58772](https://mattermost.atlassian.net/browse/MM-58772). + - Increased range of LCP metrics and Load Event End metrics that can be measured [MM-59033](https://mattermost.atlassian.net/browse/MM-59033). + - Fixed an error caused by performance telemetry when using Firefox with ``beacon.enabled`` set to ``false`` [MM-58777](https://mattermost.atlassian.net/browse/MM-58777). + - Mattermost v9.9.1 contains no database or functional changes. +- **9.9.0, released 2024-06-14** + - Original 9.9.0 release. + +### Compatibility + - Updated minimum macOS version to 12+ and minimum Safari version to 17+. + +```{Important} +If you upgrade from a release earlier than v9.5, please read the other [Important Upgrade Notes](https://docs.mattermost.com/upgrade/important-upgrade-notes.html). +``` + +### Improvements + +See [this walkthrough video](https://mattermost.com/video/video-mattermost-v9-9-changelog/) on some of the improvements in our latest release below. + +#### User Interface (UI) + - Pre-packaged Calls plugin version [v0.27.0](https://github.com/mattermost/mattermost-plugin-calls/releases/tag/v0.27.0). + - Pre-packaged Jira plugin version [v4.1.1](https://github.com/mattermost/mattermost-plugin-jira/releases/tag/v4.1.1). + - Pre-packaged GitLab plugin version [v1.9.0](https://github.com/mattermost/mattermost-plugin-gitlab/releases/tag/v1.9.0). + - Pre-packaged Zoom plugin version [v1.8.0](https://github.com/mattermost/mattermost-plugin-zoom/releases/tag/v1.8.0). + - Updated the default themes to reduce eye strain (particularly on the dark themes). + - Added UI improvements to the core layout. + - Improved error text when inviting guests to a team. + - Increased the visibility Mattermost edition in-product when using the free edition. + - Added an **Unsupported** label to the Team/E0 editions in the product menu. + - Improved the look and feel of the **True/False** selector in the System Console. + - Updated the channel header layout to reduce height and simplify the UI. + +#### Administration + - Removed safety limit error message in compiled Team Edition and unlicensed Enterprise Edition deployments when message count exceeds 5 million posts. + - Adjusted safety limit error message to show when users exceed 5,000 in compiled Team Edition and Enterprise Edition deployments when enterprise scale and access control automation features are unavailable. ``ERROR_SAFE_LIMITS_EXCEEDED``. + - Improved the message length validation step in the ``mmctl import validate`` command. + - Added shell completion to ``mmctl user active`` and ``mmctl user deactivate``. + - Removed support for self-serve purchases of Mattermost Subscriptions in various flows, throughout Cloud and Self Hosted environments. + - Removed support for self-serve true up review submission in the **System Console**. + - Added streaming support to the file attachments import process. + - Added LDAP job command to mmctl. + - Made LDAP sync jobs more resilient against errors. + - Removed the ``PostPriority`` feature flag. + - Improved the error message of ``NotFound`` errors in store. + - Added support for post priority to incoming webhooks and outgoing webhook responses. + - Added a validation that the payload for an open Interactive Dialog request is valid according to the rules at https://developers.mattermost.com/integrate/plugins/interactive-dialogs/. + - Unblocked notification calls by using usernames instead of full names in case of a missing user profile. + - Increased the maximum password limit from 64 to 72 characters (``PasswordMaximumLength``). + +#### Performance + - Added the initial version of new client-side performance metrics to track web app performance and can be monitored in new [Grafana board](https://grafana.com/grafana/dashboards/21460-web-app-metrics/). + - Added a metric to track time it takes for the right-hand side to load. + - Improved js memory profile of status’s reducers. + - When a user receives a new post that is part of a thread from a root post in a channel they are not currently viewing, we do not fetch the complete root post and its thread posts immediately. However, we still store the newly received post. The root post and its thread posts are only fetched when the user navigates to that specific channel. + +### Bug Fixes + - Fixed an issue with ``aria-label`` for sidebar channel buttons. + - Fixed an issue where any remaining unclosed database RPC connections were not closed after a plugin shut down. + - Fixed an issue where the right-hand side stole the focus when coming back from threads or drafts. + - Fixed an issue where a proxy link was copied instead of the original image link when copying a post that included an embedded image. + - Fixed an issue where the user status would incorrectly get stuck to online after the user closed the tab. + - Fixed an issue where on some servers the user could not see the member count in the **Browse Channels** dialog. + - Fixed an issue with inline display of WebP images accessed through the public-link feature. + - Fixed an issue where it wasn’t clear that the ``mmctl import process --bypass-upload --local`` doesn't work if the server is in High Availability. + - Fixed an issue where the user status would incorrectly be set to offline without checking for connections in other nodes in an High Availability cluster. + - Fixed a longstanding issue where the @mention auto-complete could erase post text following the auto-completed @mention. + - Fixed an issue with status management to avoid missing notifications. + - Fixed an issue where audit events were not added for OAuth logins. + - Fixed an issue with the error check in the message export process. + - Fixed an issue where pasting in the post text box could not always paste without formatting. + - Fixed some plugin settings with defaults not changing value. + +### config.json +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. + +#### Changes to all plans: + - Under ``ExperimentalSettings`` in ``config.json``: + - Added ``DisableWakeUpReconnectHandler`` to disable the wake up on reconnect handler. + - Removed ``SelfHostedPurchase`` setting. + +#### Changes to the Enterprise plan: + - Under ``MetricsSettings`` in ``config.json``: + - Added a feature flag and a setting ``EnableClientMetrics`` to control new client performance metrics. + - Added a setting for notification metrics ``EnableNotificationMetrics``. + - Self-hosted system administrators can now configure all ``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. + +### Websocket Event Changes + - Changed the semantics of the ``mattermost_http_websockets_total`` metric to track all open WebSocket connections, regardless of whether they are authenticated. + - Added a ``origin_client`` label to the ``mattermost_http_websockets_total`` Prometheus metric. + +### Go Version + - v9.9 is built with Go ``v1.21.8``. + +### Open Source Components + - Removed ``@stripe/react-stripe-js`` and ``@stripe/stripe-js``, and added ``web-vitals`` at https://github.com/mattermost/mattermost. + +### Known Issues + - Some Cloud workspaces unexpectedly received emails about license expiration. + - Searching stop words in quotation marks with Elasticsearch enabled returns more than just the searched terms. + - 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. + - The Playbooks left-hand sidebar doesn't update when a user is added to a run or playbook without a refresh. + - If a user isn't a member of a configured broadcast channel, posting a status update might fail without any error feedback. As a temporary workaround, join the configured broadcast channels, or remove those channels from the run configuration. + +### Contributors + - [agarciamontoro](https://github.com/agarciamontoro), [agnivade](https://github.com/agnivade), [amyblais](https://github.com/amyblais), [andrleite](https://github.com/andrleite), [arush-vashishtha](https://github.com/arush-vashishtha), [asaadmahmood](https://github.com/asaadmahmood), [ayusht2810](https://github.com/ayusht2810), [azigler](https://github.com/azigler), [BenCookie95](https://github.com/BenCookie95), [bndn](https://translate.mattermost.com/user/bndn), [calebroseland](https://github.com/calebroseland), [coltoneshaw](https://github.com/coltoneshaw), [cpoile](https://github.com/cpoile), [crspeller](https://github.com/crspeller), [ctlaltdieliet](https://translate.mattermost.com/user/ctlaltdieliet), [cwarnermm](https://github.com/cwarnermm), [devinbinnie](https://github.com/devinbinnie), [DHaussermann](https://github.com/DHaussermann), [Eleferen](https://translate.mattermost.com/user/Eleferen), [emdecr](https://github.com/emdecr), [enahum](https://github.com/enahum), [enzowritescode](https://github.com/enzowritescode), [fasal26](https://github.com/fasal26), [fmartingr](https://github.com/fmartingr), [gabrieljackson](https://github.com/gabrieljackson), [grundleborg](https://github.com/grundleborg), [hanzei](https://github.com/hanzei), [harshilsharma63](https://github.com/harshilsharma63), [hmhealey](https://github.com/hmhealey), [ifoukarakis](https://github.com/ifoukarakis), [isacikgoz](https://github.com/isacikgoz), [jespino](https://github.com/jespino), [joakim.rivera](https://translate.mattermost.com/user/joakim.rivera), [johnsonbrothers](https://github.com/johnsonbrothers), [jprusch](https://github.com/jprusch), [JulienTant](https://github.com/JulienTant), [kaakaa](https://github.com/kaakaa), [Kshitij-Katiyar](https://github.com/Kshitij-Katiyar), [larkox](https://github.com/larkox), [lieut-data](https://github.com/lieut-data), [M-ZubairAhmed](https://github.com/M-ZubairAhmed), [majo](https://translate.mattermost.com/user/majo), [marianunez](https://github.com/marianunez), [marlenekoh](https://github.com/marlenekoh), [master7](https://translate.mattermost.com/user/master7), [matt-w99](https://github.com/matt-w99), [matthew-w](https://translate.mattermost.com/user/matthew-w), [matthewbirtch](https://github.com/matthewbirtch), [MeHow25](https://github.com/MeHow25), [mgdelacroix](https://github.com/mgdelacroix), [mickmister](https://github.com/mickmister), [mojahani](https://translate.mattermost.com/user/mojahani), [morgancz](https://github.com/morgancz), [mvitale1989](https://github.com/mvitale1989), [nickmisasi](https://github.com/nickmisasi), [nixusUM](https://github.com/nixusUM), [orimaimon](https://github.com/orimaimon), [phoinixgrr](https://github.com/phoinixgrr), [piotr-lasota](https://github.com/piotr-lasota), [pjenicot](https://translate.mattermost.com/user/pjenicot), [pmokeev](https://github.com/pmokeev), [rOt779kVceSgL](https://translate.mattermost.com/user/rOt779kVceSgL), [saturninoabril](https://github.com/saturninoabril), [sbishel](https://github.com/sbishel), [spirosoik](https://github.com/spirosoik), [sri-byte](https://github.com/sri-byte), [stafot](https://github.com/stafot), [streamer45](https://github.com/streamer45), [stylianosrigas](https://github.com/stylianosrigas), [svelle](https://github.com/svelle), [tarrow](https://github.com/tarrow), [ThrRip](https://github.com/ThrRip), [tnir](https://github.com/tnir), [toninis](https://github.com/toninis), [umrkhn](https://github.com/umrkhn), [varghesejose2020](https://github.com/varghesejose2020), [vish9812](https://github.com/vish9812), [wiggin77](https://github.com/wiggin77), [yasserfaraazkhan](https://github.com/yasserfaraazkhan), [yomiadetutu1](https://github.com/yomiadetutu1), [zsrv](https://github.com/zsrv) + +(release-v9-8-feature-release)= +## Release v9.8 - Feature Release + +- **9.8.3, released 2024-07-22** + - Mattermost v9.8.3 contains low to medium severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). + - Mattermost v9.8.3 contains no database or functional changes. +- **9.8.2, released 2024-07-02** + - Mattermost v9.8.2 contains low to high severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). + - Fixed an issue where banners set by system administrators did not stack below system banners, but rather appeared underneath them. Existing system banners have remained unchanged. + - Mattermost v9.8.2 contains no database or functional changes. +- **9.8.1, released 2024-06-03** + - Mattermost v9.8.1 contains low to high severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). + - Removed a safety limit error message in compiled Team Edition and unlicensed Enterprise Edition deployments when message count exceeds 5 million posts. + - Fixed an issue with some plugin settings with defaults not changing value. + - Mattermost v9.8.1 contains no database or functional changes. +- **9.8.0, released 2024-05-16** + - Original 9.8.0 release. + +### Compatibility + - Updated minimum required Edge and Chrome versions to 122+. + +```{Important} +If you upgrade from a release earlier than v9.7, please read the other [Important Upgrade Notes](https://docs.mattermost.com/upgrade/important-upgrade-notes.html). +``` + +### Improvements + +See [this walkthrough video](https://mattermost.com/video/mattermost-v9-8-changelog/) on some of the improvements in our latest release below. + +#### User Interface (UI) + - Pre-packaged Playbooks version [v1.39.3](https://github.com/mattermost/mattermost-plugin-playbooks/releases/tag/v1.39.3). + - Pre-packaged GitLab plugin version [v1.8.1](https://github.com/mattermost/mattermost-plugin-gitlab/releases/tag/v1.8.1). + - Pre-packaged Calls version [v0.26.2](https://github.com/mattermost/mattermost-plugin-calls/releases/tag/v0.26.2). + - Combined Desktop and Mobile notifications in the user settings modal. + - Added a **Don't Clear** option for Do Not Disturb. + - Enhanced the user interface for channel introductions. + - Added an ephemeral message for non-team member mentions in channels. + - Added emoji tooltips on hover in post message. + - Made the appearance of several tooltips more consistent. + - Updated theme colors for onboarding tour points. + - Updated the right-hand side Thread view to use relative timestamps to be more consistent with the global Threads view. + - Added a total reply count to the right-hand side thread view. + +#### Administration + - Added safety limit error message in compiled Team Edition and Enterprise Edition deployments when enterprise scale and access control automation features are unavailable, and message count exceeds 5 million posts. ERROR_SAFE_LIMITS_EXCEEDED. + - Downloading a support packet is now extensible with plugins. If a plugin can add content to the support packet, it will be displayed in the commercial support modal. Administrators will have the option to include/exclude that from the support package. + - Upgraded Nodejs to v20.11. + - Added the backend for Channel Bookmarks (disabled by default). Added Channel Bookmarks permissions to the channel user role and to the channel moderation system. + - Added Channel Bookmarks permissions to the channel user role and to the channel moderation system. + - Added progress logs for attachments in bulk exports. + - Added a **System Console** option to rebuild Elasticsearch channels indexes. + - Obfuscated ``ReplicaLagSettings`` in the Support Packet. + - Improved license loading errors. + - Updated the keycloak docker configs and added a ``make`` command. + - Removed unused ``IsOAuth`` field from ``AppError``. + - ``bool`` is now used for ``license_is_trial`` in the Support Packet. + - Bulk export: added functionality to export roles and permissions schemes. + - A new flag (``extract-content``) was added to the mmctl import process that allows the server to skip content extraction during the import phase. + +### API Changes + - Added a create channel bookmark endpoint at ``/api/v4/channels/{channel_id}/bookmarks``. + - Added additional query params to channel endpoints to include channel bookmarks. + - Added update channel bookmark endpoint at ``/api/v4/channels/{channel_id}/bookmarks/{bookmark_id}``. + - Added list channel bookmarks endpoint at ``/api/v4/channels/{channel_id}/bookmarks``. + - Added delete channel bookmark endpoint at ``/api/v4/channels/{channel_id}/bookmarks/{bookmark_id}``. + - Added update channel bookmark sort order endpoint at ``/api/v4/channels/{channel_id}/bookmarks/{bookmark_id}/sort_order``. + - Exposed a local-mode only API for reattaching plugins, primarily to facilitate mock-free unit testing. + - Exposed ``UpdateUserRoles`` in ``pluginapi``. + - Exposed ``pluginapi.ProfileImageBytes`` to simplify bot setup from a plugin. + - For ``POST /channels``, added a validation for ``display_name`` to not pass validation if the display name is empty. + +### Bug Fixes + - Fixed an issue with context cancellation for integration requests. + - Fixed an issue preventing the retrieval of SAML metadata. + - Fixed an issue causing an empty channel switcher after converting a group message to a private channel. + - Fixed an issue where System Admins were not allowed to LDAP sync SAML users when ``SamlSettings.EnableSyncWithLdap`` was set to **true**. + - Fixed an issue with markdown in the AD job status table. + - Fixed an issue with a control character in the group list modal. + - Fixed an issue where the auto-complete channels API returned archived channels in response. + - Fixed a crash issue in the **System Console**. + - Fixed an issue where links included in notifications were truncated and not clickable. + - Fixed using local requests instead of HTTP requests in the flow library. + - Fixed an issue where ``support_packet.yaml`` wasn’t generated even if an error occurred. + - Fixed an issue where outgoing webhooks did not trigger when using multiple callback URLs. + - Fixed an issue where it was not possible to clear plugin settings with a default value in the **System Console**. + - Fixed an issue where ``MaxUsersForStatistics`` wasn’t ignored when generating a Support Packet. + - Fixed an issue where the ``EnsureBot`` function did not recreate the bot if it had been manually deleted. + - Fixed an issue where users couldn't look up a user by their ID in the **System Console** anymore. + - Fixed an accessibility issue where the focus didn’t go back to the originating button when a modal was closed. + - Fixed an issue where end users were not allowed to fetch the group members list of groups that allow ``@-mentions``. + +### config.json +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. + +#### Changes to all plans: + - Under ``FileSettings`` in ``config.json``: + - Added ``AmazonS3UploadPartSizeBytes`` and ``ExportAmazonS3UploadPartSizeBytes`` to control the part size used to upload files to an S3 store. + - Under ``ServiceSettings`` in ``config.json``: + - Increased the default payload size limit (``MaximumPayloadSizeBytes``) from 100 kB to 300 kB. Existing servers need to manually update this value. + - Under ``ClusterSettings`` in ``config.json``: + - Removed unused settings ``StreamingPort``, ``MaxIdleConns``, ``MaxIdleConnsPerHost`` and ``IdleConnTimeoutMilliseconds``. + + #### Changes to Professional and Enterprise plans: + - Under ``ExperimentalSettings`` in ``config.json``: + - Removed the ``UseNewSAMLLibrary`` experimental setting. + +### Go Version + - v9.8 is built with Go ``v1.21.8``. + +### Known Issues + - Status may sometimes get stuck as **Away** or **Offline** with IP Hash turned off. + - Searching stop words in quotation marks with Elasticsearch enabled returns more than just the searched terms. + - 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. + - The Playbooks left-hand sidebar doesn't update when a user is added to a run or playbook without a refresh. + - If a user isn't a member of a configured broadcast channel, posting a status update might fail without any error feedback. As a temporary workaround, join the configured broadcast channels, or remove those channels from the run configuration. + +### Contributors + - [agarciamontoro](https://github.com/agarciamontoro), [agnivade](https://github.com/agnivade), [Amir-Helali](https://github.com/Amir-Helali), [amyblais](https://github.com/amyblais), [andrleite](https://github.com/andrleite), [angeloskyratzakos](https://github.com/angeloskyratzakos), [annaos](https://github.com/annaos), [apshada](https://github.com/apshada), [Aryakoste](https://github.com/Aryakoste), [asaadmahmood](https://github.com/asaadmahmood), [aszakacs](https://github.com/aszakacs), [BarbUk](https://github.com/BarbUk), [BenCookie95](https://github.com/BenCookie95), [Blaieet](https://github.com/Blaieet), [calebroseland](https://github.com/calebroseland), [coltoneshaw](https://github.com/coltoneshaw), [cpoile](https://github.com/cpoile), [crspeller](https://github.com/crspeller), [ctlaltdieliet](https://translate.mattermost.com/user/ctlaltdieliet), [cwarnermm](https://github.com/cwarnermm), [cyrusjc](https://github.com/cyrusjc), [daran9](https://github.com/daran9), [devharipragaz007](https://github.com/devharipragaz007), [devinbinnie](https://github.com/devinbinnie), [dsspence](https://github.com/dsspence), [Eleferen](https://translate.mattermost.com/user/Eleferen), [EltonGohJH](https://github.com/EltonGohJH), [emdecr](https://github.com/emdecr), [enahum](https://github.com/enahum), [ezekielchow](https://github.com/ezekielchow), [fmartingr](https://github.com/fmartingr), [gabrieljackson](https://github.com/gabrieljackson), [gitairman](https://github.com/gitairman), [grundleborg](https://github.com/grundleborg), [hanzei](https://github.com/hanzei), [harshilsharma63](https://github.com/harshilsharma63), [hmhealey](https://github.com/hmhealey), [hossain-sazzad](https://github.com/hossain-sazzad), [ifoukarakis](https://github.com/ifoukarakis), [inconnu1](https://github.com/inconnu1), [isacikgoz](https://github.com/isacikgoz), [jasonblais](https://github.com/jasonblais), [jespino](https://github.com/jespino), [johnsonbrothers](https://github.com/johnsonbrothers), [jones](https://translate.mattermost.com/user/jones), [josephjose](https://github.com/josephjose), [jprusch](https://github.com/jprusch), [JulienTant](https://github.com/JulienTant), [jupenur](https://github.com/jupenur), [jwilander](https://github.com/jwilander), [kaakaa](https://github.com/kaakaa), [kaoski](https://github.com/kaoski), [Karimaljandali](https://github.com/Karimaljandali), [kayazeren](https://github.com/kayazeren), [KrisSiegel](https://github.com/KrisSiegel), [Kshitij-Katiyar](https://github.com/Kshitij-Katiyar), [larkox](https://github.com/larkox), [lbr88](https://github.com/lbr88), [lieut-data](https://github.com/lieut-data), [lindalumitchell](https://github.com/lindalumitchell), [lynn915](https://github.com/lynn915), [M-ZubairAhmed](https://github.com/M-ZubairAhmed), [mahdiirar](https://github.com/mahdiirar), [majo](https://translate.mattermost.com/user/majo), [manojmalik20](https://github.com/manojmalik20), [master7](https://translate.mattermost.com/user/master7), [matt-w99](https://github.com/matt-w99), [matthew-w](https://translate.mattermost.com/user/matthew-w), [matthewbirtch](https://github.com/matthewbirtch), [MeHow25](https://github.com/MeHow25), [mentz](https://translate.mattermost.com/user/mentz), [mgdelacroix](https://github.com/mgdelacroix), [mickmister](https://github.com/mickmister), [milotype](https://github.com/milotype), [movion](https://github.com/movion), [mvitale1989](https://github.com/mvitale1989), [nickmisasi](https://github.com/nickmisasi), [Nityanand13](https://github.com/Nityanand13), [nmnj](https://translate.mattermost.com/user/nmnj), [Obbi89](https://github.com/Obbi89), [pacop](https://github.com/pacop), [phoinixgrr](https://github.com/phoinixgrr), [Pkarle](https://github.com/Pkarle), [poppfredslund](https://translate.mattermost.com/user/poppfredslund), [potatogim](https://github.com/potatogim), [raghavaggarwal2308](https://github.com/raghavaggarwal2308), [rahimrahman](https://github.com/rahimrahman), [rOt779kVceSgL](https://translate.mattermost.com/user/rOt779kVceSgL), [RS-labhub](https://github.com/RS-labhub), [Rutam21](https://github.com/Rutam21), [s-krishnaraju](https://github.com/s-krishnaraju), [saturninoabril](https://github.com/saturninoabril), [sbishel](https://github.com/sbishel), [Sharuru](https://github.com/Sharuru), [sri-byte](https://github.com/sri-byte), [stafot](https://github.com/stafot), [streamer45](https://github.com/streamer45), [stylianosrigas](https://github.com/stylianosrigas), [Syed-Ali-Abbas-Zaidi](https://github.com/Syed-Ali-Abbas-Zaidi), [tanmaythole](https://github.com/tanmaythole), [ThrRip](https://github.com/ThrRip), [tnir](https://github.com/tnir), [toninis](https://github.com/toninis), [topolovac](https://github.com/topolovac), [varghesejose2020](https://github.com/varghesejose2020), [wetneb](https://github.com/wetneb), [wiersgallak](https://github.com/wiersgallak), [wiggin77](https://github.com/wiggin77), [yasserfaraazkhan](https://github.com/yasserfaraazkhan), [yomiadetutu1](https://github.com/yomiadetutu1), [zsrv](https://github.com/zsrv) + +---- + +(release-v9-7-feature-release)= +## Release v9.7 - [Feature Release](https://docs.mattermost.com/upgrade/release-definitions.html#feature-release) + +- **9.7.6, released 2024-07-02** + - Mattermost v9.7.6 contains low to high severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). + - Fixed an issue where banners set by system administrators did not stack below system banners, but rather appeared underneath them. Existing system banners have remained unchanged. + - Mattermost v9.7.6 contains no database or functional changes. +- **9.7.5, released 2024-06-03** + - Mattermost v9.7.5 contains low to high severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). + - Mattermost v9.7.5 contains no database or functional changes. +- **9.7.4, released 2024-05-15** + - Fixed an issue with context cancellation for integration requests [MM-58019](https://mattermost.atlassian.net/browse/MM-58019). + - Fixed some plugin settings with defaults not changing value [MM-58102](https://mattermost.atlassian.net/browse/MM-58102). + - Mattermost v9.7.4 contains no database or functional changes. +- **9.7.3, released 2024-04-30** + - Fixed an issue where creating a Direct Message channel with synthetic users failed [MM-58019](https://mattermost.atlassian.net/browse/MM-58019). + - Mattermost v9.7.3 contains no database or functional changes. +- **9.7.2, released 2024-04-25** + - Mattermost v9.7.2 contains low to medium severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). + - Mattermost v9.7.2 contains no database or functional changes. + - Pre-packaged Playbooks version [v1.39.3](https://github.com/mattermost/mattermost-plugin-playbooks/releases/tag/v1.39.3). + - Increased the default payload size limit (``MaximumPayloadSizeBytes``) from 100 kB to 300 kB. Existing servers need to manually update this value. + - Fixed an issue where it was not possible to clear the plugin settings with a default value in the System Console. +- **9.7.1, released 2024-04-16** + - Fixed an issue with a noisy log entry for permalink post notifications. + - Mattermost v9.7.1 contains no database or functional changes. +- **9.7.0, released 2024-04-16** + - Original 9.7.0 release. + +```{Important} +If you upgrade from a release earlier than v9.6, please read the other [Important Upgrade Notes](https://docs.mattermost.com/upgrade/important-upgrade-notes.html). +``` + +### Improvements + +See [this walkthrough video](https://mattermost.com/video/mattermost-v9-7-changelog/) on some of the improvements in our latest release below. + +#### User Interface (UI) + - Added Mattermost [AI plugin](https://github.com/mattermost/mattermost-plugin-ai) to pre-packaged plugins. + - Pre-packaged Calls version [v0.25.1](https://github.com/mattermost/mattermost-plugin-calls/releases/tag/v0.25.1). + - Pre-packaged Playbooks version [v1.39.2](https://github.com/mattermost/mattermost-plugin-playbooks/releases/tag/v1.39.2). + - Pre-packaged GitHub plugin version [v2.2.0](https://github.com/mattermost/mattermost-plugin-github/releases/tag/v2.2.0). + - The first emoji is now auto-selected in the emoji picker. + - Added Markdown support for batched email notifications. + - Users’ timezone is now used in batched email notifications. + - Removed a conflicting class (``help-text``) from the interactive dialog field description to resolve the black text color in the dark theme. + - Updated the user interface of **Team Settings** modal. + - Promoted Simplified Chinese to Beta, and downgraded Hungarian and Spanish languages to Beta. + - Improved the opening animation of the user settings modal. + +#### Administration + - Upgraded ``@mattermost/client`` and ``@mattermost/types`` to support TypeScript v5.x. + - Enforced safety limit in compiled Team Edition and Enterprise Edition deployments when enterprise scale and access control automation features are unavailable, and when the count of users who are registered, but not deactivated, exceeds 11,000. ERROR_SAFE_LIMITS_EXCEEDED. + - Dropped pre-packaged plugins for unsupported OS and architectures. + - Implemented a new **Export Settings** page in the **System Console** to allow Cloud administrators to customize their dedicated export S3 buckets. + - LDAP job details are no longer shown until the job runs. + - Added more logging to the ``NotificationsLog``. + - A message is now logged when a user tries to log in using an incorrect password. + - Posts from deactivated users are now included in **Direct Message** channel exports. Also the ``--include-archived-channels`` flag is now respected for **Direct Message** channels. + - Changed the cache headers for file endpoints to cache privately for 24 hours, instead of not caching at all. + - Improved the performance of the ElasticSearch indexing job in PostgreSQL installations. + - Moved following functions from server to public utils: + - ``ResetReadTimeout`` + - ``AppendMultipleStatementsFlag`` + - ``SetupConnection`` + - ``SanitizeDataSource`` + +#### mmctl + - mmctl can now be used to download a Support Packet using ``--local mode``. + - mmctl system ping will now return detailed server status even if the server status is unhealthy. + +### Bug Fixes + - Fixed an issue where the Desktop App login flow would erroneously show the landing page for first time users. + - Fixed an issue where a right-hand side card was not reloaded when the card body was updated. + - Fixed an issue where ``en-AU`` language selection was not allowed. + - Fixed an issue with the position of text in the default profile picture. + - Fixed an issue with the group search to parse the display name. + - Fixed an issue where items with longer text did not widen the user guide dropdown to its max-width. + - Fixed an issue where the configuration could not be updated from the **System Console** in cloud environments. + +### config.json +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. + +#### Changes to all plans: + - Under ``CloudSettings`` in ``config.json``: + - Added a new configuration setting ``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. + +### Open Source Components + - Added ``stylelint`` to https://github.com/mattermost/mattermost/. + +### Go Version + - v9.7 is built with Go ``v1.20.7``. + +### Known Issues + - 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. + - 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. + - The Playbooks left-hand sidebar doesn't update when a user is added to a run or playbook without a refresh. + - If a user isn't a member of a configured broadcast channel, posting a status update might fail without any error feedback. As a temporary workaround, join the configured broadcast channels, or remove those channels from the run configuration. + +### Contributors + - [2017Yasu](https://github.com/2017Yasu), [agarciamontoro](https://github.com/agarciamontoro), [agnivade](https://github.com/agnivade), [amyblais](https://github.com/amyblais), [andriumm](https://github.com/andriumm), [angeloskyratzakos](https://github.com/angeloskyratzakos), [annaos](https://github.com/annaos), [apshada](https://github.com/apshada), [asaadmahmood](https://github.com/asaadmahmood), [ayusht2810](https://github.com/ayusht2810), [azigler](https://github.com/azigler), [BenCookie95](https://github.com/BenCookie95), [Blaieet](https://github.com/Blaieet), [calebroseland](https://github.com/calebroseland), [cpoile](https://github.com/cpoile), [crspeller](https://github.com/crspeller), [ctlaltdieliet](https://translate.mattermost.com/user/ctlaltdieliet), [cwarnermm](https://github.com/cwarnermm), [devinbinnie](https://github.com/devinbinnie), [dipaksinha1](https://github.com/dipaksinha1), [doc-sheet](https://github.com/doc-sheet), [Eleferen](https://translate.mattermost.com/user/Eleferen), [emdecr](https://github.com/emdecr), [enahum](https://github.com/enahum), [ezekielchow](https://github.com/ezekielchow), [gabrieljackson](https://github.com/gabrieljackson), [grundleborg](https://github.com/grundleborg), [hannaparks](https://github.com/hannaparks), [hanzei](https://github.com/hanzei), [harshilsharma63](https://github.com/harshilsharma63), [hereje](https://github.com/hereje), [hmhealey](https://github.com/hmhealey), [hossain-sazzad](https://github.com/hossain-sazzad), [ifoukarakis](https://github.com/ifoukarakis), [isacikgoz](https://github.com/isacikgoz), [iyampaul](https://github.com/iyampaul), [jasonblais](https://github.com/jasonblais), [jespino](https://github.com/jespino), [johndavidlugtu](https://github.com/johndavidlugtu), [johnsonbrothers](https://github.com/johnsonbrothers), [jones](https://translate.mattermost.com/user/jones), [jprusch](https://github.com/jprusch), [JulienTant](https://github.com/JulienTant), [jwilander](https://github.com/jwilander), [kaakaa](https://github.com/kaakaa), [kayazeren](https://github.com/kayazeren), [Kshitij-Katiyar](https://github.com/Kshitij-Katiyar), [larkox](https://github.com/larkox), [lieut-data](https://github.com/lieut-data), [lindalumitchell](https://github.com/lindalumitchell), [Linkinlog](https://github.com/Linkinlog), [lynn915](https://github.com/lynn915), [M-ZubairAhmed](https://github.com/M-ZubairAhmed), [majo](https://translate.mattermost.com/user/majo), [marianunez](https://github.com/marianunez), [master7](https://translate.mattermost.com/user/master7), [matthew-w](https://translate.mattermost.com/user/matthew-w), [matthewbirtch](https://github.com/matthewbirtch), [mickmister](https://github.com/mickmister), [morgancz](https://github.com/morgancz), [mozi47](https://github.com/mozi47), [mvitale1989](https://github.com/mvitale1989), [nab-77](https://github.com/nab-77), [nachtjasmin](https://github.com/nachtjasmin), [natalie-hub](https://github.com/natalie-hub), [neflyte](https://github.com/neflyte), [nickmisasi](https://github.com/nickmisasi), [phoinixgrr](https://github.com/phoinixgrr), [poppfredslund](https://translate.mattermost.com/user/poppfredslund), [pvev](https://github.com/pvev), [raghavaggarwal2308](https://github.com/raghavaggarwal2308), [RyoKub](https://github.com/RyoKub), [saturninoabril](https://github.com/saturninoabril), [sbishel](https://github.com/sbishel), [Sharuru](https://translate.mattermost.com/user/Sharuru), [sinansonmez](https://github.com/sinansonmez), [sri-byte](https://github.com/sri-byte), [stafot](https://github.com/stafot), [streamer45](https://github.com/streamer45), [stylianosrigas](https://github.com/stylianosrigas), [Syed-Ali-Abbas-Zaidi](https://github.com/Syed-Ali-Abbas-Zaidi), [tanmaythole](https://github.com/tanmaythole), [ThrRip](https://github.com/ThrRip), [toninis](https://github.com/toninis), [varghesejose2020](https://github.com/varghesejose2020), [vish9812](https://github.com/vish9812), [vishal-rathod-07](https://github.com/vishal-rathod-07), [wiersgallak](https://github.com/wiersgallak), [wiggin77](https://github.com/wiggin77), [Wing0515](https://github.com/Wing0515), [yasserfaraazkhan](https://github.com/yasserfaraazkhan), [yomiadetutu1](https://github.com/yomiadetutu1) + +---- + +(release-v9-6-feature-release)= +## Release v9.6 - [Feature Release](https://docs.mattermost.com/upgrade/release-definitions.html#feature-release) + +- **9.6.3, released 2024-06-03** + - Mattermost v9.6.3 contains low to high severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). + - Fixed an issue with some plugin settings with defaults not changing value. + - Mattermost v9.6.3 contains no database or functional changes. +- **9.6.2, released 2024-04-25** + - Mattermost v9.6.2 contains low to medium severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). + - Mattermost v9.6.2 contains no database or functional changes. + - Pre-packaged Playbooks version [v1.39.3](https://github.com/mattermost/mattermost-plugin-playbooks/releases/tag/v1.39.3). + - Fixed an issue where it was not possible to clear the plugin settings with a default value in the System Console. +- **9.6.1, released 2024-03-26** + - Mattermost v9.6.1 contains low to medium severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). + - Mattermost v9.6.1 contains no database or functional changes. + - Fixed an issue where the configuration could not be updated from the System Console in cloud environments. +- **9.6.0, released 2024-03-15** + - Original 9.6.0 release. + +### Compatibility + - Updated minimum required Edge and Chrome versions to 120+. + +```{Important} +If you upgrade from a release earlier than v9.5, please read the other [Important Upgrade Notes](https://docs.mattermost.com/upgrade/important-upgrade-notes.html). +``` + +### Improvements + +See [this walkthrough video](https://mattermost.com/video/changelog-v9-6/) on some of the improvements in our latest release below. + +#### User Interface (UI) + - Pre-packaged Calls version [v0.24.0](https://github.com/mattermost/mattermost-plugin-calls/releases/tag/v0.24.0). + - Pre-packaged GitLab plugin version [v1.8.0](https://github.com/mattermost/mattermost-plugin-gitlab/releases/tag/v1.8.0). + - Added the [Outgoing OAuth Connections](https://developers.mattermost.com/integrate/slash-commands/outgoing-oauth-connections/) integration type. + - Re-designed the **System Console > User Management** screen, and added the ability to batch export users in CSV format (Professional and Enterprise plans). On MySQL, users cannot view live results of the batch export in the user interface. + - Improved the appearance of profile/account menus. + - Added support for checkbox types in the **System Console** settings. + - Added support for WebP image previews in the web app similar to PNG and other image formats. + - Several pre-packaged plugins were removed. + +#### Administration + - Removed some unused Redux actions and reducers, including ``state.entities.posts.selectedPostId``. + - Limited the number of user preference updates to 10 per call. + - Clarified that the LDAP profile picture setting is optional. + +#### mmctl + - Extended mmctl with support for user preferences. + +### Bug Fixes + - Fixed an issue with switching to a **Direct Message** channel with a shared channel user (user from another server). + - Fixed an issue with extra space getting added to code blocks in search results. + - Fixed an issue where deactivated members were not included in a favorited **Direct Message** channel export. + - Fixed an issue where password strength settings wouldn't be disabled if they were set through environment variables. + - Fixed an issue where post mentions would grow outside the viewport on small devices. + - Fixed an issue with draft removal after deleting the post. + - Fixed a markdown issue where, on some occasions, extra space was found before a list. + - Fixed an issue where a sender to a custom group would also receive the message notification themselves. + - Fixed a web app crash when a System Admin clicked on a link to a private channel that they were not a member of. + - Fixed ``ChannelHasBeenCreated`` plugin hook not being called when a group channel was created. + - Fixed thread notifications so that if a user had **Thread Reply Notifications** disabled for your account and **Automatically follow threads in this channel** enabled for a channel, the user wouldn't receive thread notifications for that channel per global setting. + +### 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 the Enterprise plan: + - Under ``ServiceSettings`` in ``config.json``: + - Added ``EnableOutgoingOAuthConnections`` configuration setting for Outgoing OAuth Connections integration type. + +### Open Source Components + - Added ``@floating-ui/react``, and removed ``@floating-ui/react-dom`` and ``@floating-ui/react-dom-interactions`` from https://github.com/mattermost/mattermost/. + +### Go Version + - v9.6 is built with Go ``v1.20.7``. + +### Known Issues + - Users' initial status is not always loaded correctly [MM-56966](https://mattermost.atlassian.net/browse/MM-56966). + - 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. + - 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. + - The Playbooks left-hand sidebar doesn't update when a user is added to a run or playbook without a refresh. + - If a user isn't a member of a configured broadcast channel, posting a status update might fail without any error feedback. As a temporary workaround, join the configured broadcast channels, or remove those channels from the run configuration. + +### Contributors + - [abdesslamhouioui](https://github.com/abdesslamhouioui), [agarciamontoro](https://github.com/agarciamontoro), [agnivade](https://github.com/agnivade), [Alpha-4](https://github.com/Alpha-4), [amyblais](https://github.com/amyblais), [andrleite](https://github.com/andrleite), [angeloskyratzakos](https://github.com/angeloskyratzakos), [apshada](https://github.com/apshada), [arush-vashishtha](https://github.com/arush-vashishtha), [asaadmahmood](https://github.com/asaadmahmood), [avas27JTG](https://github.com/avas27JTG), [ayusht2810](https://github.com/ayusht2810), [azigler](https://github.com/azigler), [BenCookie95](https://github.com/BenCookie95), [bewing](https://github.com/bewing), [calebroseland](https://github.com/calebroseland), [carydrew](https://github.com/carydrew), [Chlbek](https://translate.mattermost.com/user/Chlbek), [compiledsound](https://github.com/compiledsound), [cpatulea](https://github.com/cpatulea), [cpoile](https://github.com/cpoile), [crspeller](https://github.com/crspeller), [ctlaltdieliet](https://github.com/ctlaltdieliet), [cwarnermm](https://github.com/cwarnermm), [devinbinnie](https://github.com/devinbinnie), [DHaussermann](https://github.com/DHaussermann), [edu-ap](https://github.com/edu-ap), [Eleferen](https://translate.mattermost.com/user/Eleferen), [emdecr](https://github.com/emdecr), [enahum](https://github.com/enahum), [esarafianou](https://github.com/esarafianou), [ewwollesen](https://github.com/ewwollesen), [gabrieljackson](https://github.com/gabrieljackson), [gourav-varma](https://github.com/gourav-varma), [Gregesp](https://github.com/Gregesp), [grundleborg](https://github.com/grundleborg), [hannaparks](https://github.com/hannaparks), [hanzei](https://github.com/hanzei), [harshilsharma63](https://github.com/harshilsharma63), [hereje](https://github.com/hereje), [hmhealey](https://github.com/hmhealey), [iabdousd](https://github.com/iabdousd), [ifoukarakis](https://github.com/ifoukarakis), [isacikgoz](https://github.com/isacikgoz), [it33](https://github.com/it33), [jespino](https://github.com/jespino), [jlandells](https://github.com/jlandells), [johndavidlugtu](https://github.com/johndavidlugtu), [jones](https://translate.mattermost.com/user/jones), [jprusch](https://github.com/jprusch), [JulienTant](https://github.com/JulienTant), [juliovillalvazo](https://github.com/juliovillalvazo), [jwilander](https://github.com/jwilander), [kaakaa](https://github.com/kaakaa), [larkox](https://github.com/larkox), [lieut-data](https://github.com/lieut-data), [lucassabreu](https://github.com/lucassabreu), [lynn915](https://github.com/lynn915), [M-ZubairAhmed](https://github.com/M-ZubairAhmed), [majo](https://translate.mattermost.com/user/majo), [marianunez](https://github.com/marianunez), [master7](https://translate.mattermost.com/user/master7), [matt-w99](https://github.com/matt-w99), [matthew-w](https://translate.mattermost.com/user/matthew-w), [matthewbirtch](https://github.com/matthewbirtch), [mickmister](https://github.com/mickmister), [milotype](https://github.com/milotype), [MixeroTN](https://translate.mattermost.com/user/MixeroTN), [mjnagel](https://github.com/mjnagel), [morgancz](https://translate.mattermost.com/user/morgancz), [mvitale1989](https://github.com/mvitale1989), [nickmisasi](https://github.com/nickmisasi), [nokedajunky](https://github.com/nokedajunky), [olavinto](https://github.com/olavinto), [oOoBenoitoOo](https://github.com/oOoBenoitoOo), [phoinixgrr](https://github.com/phoinixgrr), [pvev](https://github.com/pvev), [raghavaggarwal2308](https://github.com/raghavaggarwal2308), [rOt779kVceSgL](https://translate.mattermost.com/user/rOt779kVceSgL), [sadohert](https://github.com/sadohert), [saturninoabril](https://github.com/saturninoabril), [sbishel](https://github.com/sbishel), [Sharuru](https://translate.mattermost.com/user/Sharuru), [sinansonmez](https://github.com/sinansonmez), [sohzm](https://github.com/sohzm), [sri-byte](https://github.com/sri-byte), [stafot](https://github.com/stafot), [streamer45](https://github.com/streamer45), [stylianosrigas](https://github.com/stylianosrigas), [svelle](https://github.com/svelle), [Syed-Ali-Abbas-Zaidi](https://github.com/Syed-Ali-Abbas-Zaidi), [TealWater](https://github.com/TealWater), [ThrRip](https://github.com/ThrRip), [titanventura](https://github.com/titanventura), [toninis](https://github.com/toninis), [trangology](https://github.com/trangology), [trivikr](https://github.com/trivikr), [tsabi](https://github.com/tsabi), [Utsav-Ladani](https://github.com/Utsav-Ladani), [varghesejose2020](https://github.com/varghesejose2020), [vidhisaini10](https://github.com/vidhisaini10), [wiggin77](https://github.com/wiggin77), [yasserfaraazkhan](https://github.com/yasserfaraazkhan), [yeoji](https://github.com/yeoji) + +---- + +(release-v9-5-extended-support-release)= +## Release v9.5 - [Extended Support Release](https://docs.mattermost.com/upgrade/release-definitions.html#extended-support-release-esr) + +- **9.5.14, released 2025-05-09** + - Upgraded logr dependency to v2.0.22 for multiple improvements and bug fixes. + - Mattermost v9.5.14 contains no database or functional changes. +- **9.5.13, released 2024-11-14** + - Mattermost v9.5.13 contains medium severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). + - Pre-packaged Calls plugin [v0.29.4](https://github.com/mattermost/mattermost-plugin-calls/releases/tag/v0.29.4). + - Mattermost v9.5.13 contains no database or functional changes. +- **9.5.12, released 2024-10-28** + - Mattermost v9.5.12 contains a high severity level security fix. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). + - Fixed desyncing issues with unreads between the team sidebar and the title bar [MM-54021](https://mattermost.atlassian.net/browse/MM-54021). + - Mattermost v9.5.12 contains no database or functional changes. +- **9.5.11, released 2024-10-10** + - Mattermost v9.5.11 contains low to medium severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). + - Fixed an issue with YouTube previews no longer being displayed [MM-60351](https://mattermost.atlassian.net/browse/MM-60351). + - Pre-packaged Calls plugin [v0.29.2](https://github.com/mattermost/mattermost-plugin-calls/releases/tag/v0.29.2). + - Improved the performance of LDAP sync jobs when group-contained teams and channels are used [MM-60253](https://mattermost.atlassian.net/browse/MM-60253). + - Mattermost v9.5.11 contains no database or functional changes. +- **9.5.10, released 2024-09-26** + - Mattermost v9.5.10 contains low to medium severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). + - Fixed racy use of session in ``NewWebConn`` [MM-60307](https://mattermost.atlassian.net/browse/MM-60307). + - Pre-packaged Playbooks plugin [v1.40.0](https://github.com/mattermost/mattermost-plugin-playbooks/releases/tag/v1.40.0). + - Mattermost v9.5.10 contains no database or functional changes. +- **9.5.9, released 2024-08-27** + - Mattermost v9.5.9 contains low to medium severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). + - Mattermost v9.5.9 contains no database or functional changes. +- **9.5.8, released 2024-07-22** + - Mattermost v9.5.8 contains low to medium severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). + - Mattermost v9.5.8 contains no database or functional changes. +- **9.5.7, released 2024-07-02** + - Mattermost v9.5.7 contains low to high severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). + - Fixed an issue where banners set by system administrators did not stack below system banners, but rather appeared underneath them. Existing system banners have remained unchanged. + - Added a new configuration setting ``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. + - Fixed an issue where the user status would incorrectly be set to offline without checking for connections in other nodes in an High Availability cluster [MM-57153](https://mattermost.atlassian.net/browse/MM-57153). + - Fixed an issue where users could not see the member count in the **Browse Channels** dialog on some servers [MM-56266](https://mattermost.atlassian.net/browse/MM-56266). + - Increased the maximum length of the ``Value`` column of the ``Preferences`` table [MM-57913](https://mattermost.atlassian.net/browse/MM-57913). + - Mattermost v9.5.7 contains no database or functional changes. +- **9.5.6, released 2024-06-03** + - Mattermost v9.5.6 contains low to high severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). + - Mattermost v9.5.6 contains no database or functional changes. +- **9.5.5, released 2024-05-15** + - Fixed an issue where the user status would incorrectly get stuck to online after the user closed their tab [MM-57885](https://mattermost.atlassian.net/browse/MM-57885). + - Mattermost v9.5.5 contains no database or functional changes. +- **9.5.4, released 2024-04-25** + - Mattermost v9.5.4 contains low to medium severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). + - Mattermost v9.5.4 contains no database or functional changes. + - Pre-packaged Playbooks version [v1.39.3](https://github.com/mattermost/mattermost-plugin-playbooks/releases/tag/v1.39.3). + - Increased the default payload size limit (``MaximumPayloadSizeBytes``) from 100 kB to 300 kB. Existing servers need to manually update this value. + - Fixed an issue with context cancellation for integration requests. + - Fixed an issue where end users were not allowed to fetch the group members list of groups that allow ``@-mentions``. +- **9.5.3, released 2024-03-26** + - Mattermost v9.5.3 contains low to medium severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). + - Mattermost v9.5.3 contains no database or functional changes. + - Improved the performance of the ElasticSearch indexing job in PostgreSQL installations. +- **9.5.2, released 2024-03-06** + - Mattermost v9.5.2 contains low to medium severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). + - Mattermost v9.5.2 contains no database or functional changes. + - Fixed ``ChannelHasBeenCreated`` plugin hook not being called when a group channel was created. +- **9.5.1, released 2024-02-16** + - Mattermost v9.5.1 contains low to high severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). + - Mattermost v9.5.1 contains no database or functional changes. +- **9.5.0, released 2024-02-16** + - Original 9.5.0 release. + +### Important Upgrade Notes + - We have stopped supporting MySQL v5.7 since it's at the end of life. We urge customers to upgrade their MySQL instance at their earliest convenience. + +```{Important} +If you upgrade from a release earlier than v9.4, please read the other [Important Upgrade Notes](https://docs.mattermost.com/upgrade/important-upgrade-notes.html). +``` + +### Improvements + +See [this walkthrough video](https://www.youtube.com/watch?v=b1M2BGGF578&feature=youtu.be) on some of the improvements in our latest release below. + +#### User Interface (UI) + - Pre-packaged Calls version [v0.23.1](https://github.com/mattermost/mattermost-plugin-calls/releases/tag/v0.23.1). + - Pre-packaged Jira plugin version [v4.1.0](https://github.com/mattermost/mattermost-plugin-jira/releases/tag/v4.1.0). + - Improved the behavior of suggestion boxes when changing the caret position. + - Changed the time for tomorrow in the **Do Not Disturb** timer and post reminder to refer to the next day at 9:00am instead of 24hrs from the time of activation. + - Updated message timestamp tooltips to include seconds. + - Added a new Wrangler feature to be able to move threads (Experimental). Moving threads requires a Professional/Enterprise license to activate. This feature is not yet recommended for production use. A new feature flag ``MoveThreadsEnabled`` was added and is default OFF. Changing this value to ON will enable the experimental **Move Threads** feature. + - Applied a wording change for active and activated users in the **System Console** user list. + - Applied a wording change for active and activated users in the **Team Statistics** page. + +#### Administration + - Added safety limit error message in compiled Team Edition and Enterprise Edition deployments when enterprise scale and access control automation features are unavailable and count of users who are registered and not deactivated exceeds 10,000. ERROR_SAFE_LIMITS_EXCEEDED. + - The ``where`` field is now rendered in ``model.AppError`` only when it's present. + - Added Outgoing Oauth implementation ``Get``/``List`` logic. + - The mmctl bulk import process command in local mode now supports processing an import file without actually uploading it to the server. Simply pass the file path to the import file and the server will directly read from it, and pass the ``--bypass-upload`` flag. There is no need to use the import upload command. NOTE: all of this is applicable only in local mode. + - Added **Monthly Active Users** (MAU) as part of the true-up report. + - Prometheus metrics are now available under the Source Available License. + +#### Performance + - Optimized ``createPost`` performance. + - Improved the performance of emoji uploads. + - Made small optimizations in several database calls: + - ``App.HasPermissionToChannel`` + - ``getPostsForChannelAroundLastUnread`` + - ``publishWebsocketEventForPermalinkPost`` + - ``countMentionsFromPost`` + +#### Plugins + - Plugins are now allowed to register user settings. + - Plugins can now register an action in the **User Settings** section. Plugins can also now disable a section in their **User Settings**. + - Included session id in request payload of the ``WebSocketMessageHasBeenPosted`` plugin hook. + +### Bug Fixes + - Fixed an issue where the right-hand side stopped getting the focus when navigating from **Global Threads** or **Global Drafts**. + - Fixed a theme issue in the notification settings. + - Fixed a regression in compliance exports which did not allow the export job to be canceled gracefully on server shutdown. + - Fixed an error where posts dismissed by a plugin were not properly removed from the view. + - Fixed an issue where if there were multiple websocket connections from a single user, then in case one connection got removed during a broadcast, there was a possibility that the other good connection would not get the event. + - Fixed an issue with true-up reports sending active users and not activated users. + - Fixed an issue where users were not able to navigate through links to private channels they are member of with certain configurations. + +### 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 all plans: + - Under ``ServiceSettings`` in ``config.json``: + - Added ``MaximumPayloadSizeBytes`` to add a limit to the payload size of API endpoints passing in arrays. + - Added a configuration setting ``OutgoingIntegrationRequestsDefaultTimeout`` for integration requests. + +#### Changes to the Professional and Enterprise plans: + - Under ``WranglerSettings`` in ``config.json``: + - Added ``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. + +#### Changes to the Enterprise plan: + - Under ``DataRetentionSettings`` in ``config.json``: + - Added two new configuration settings, ``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. + +### API Changes + - Added a new API endpoint ``POST /api/v4/posts//move``. + - Added ``UpdateChannelMembersNotifications`` plugin API. + - Added plugin APIs and hooks for accessing the **Shared Channels** service via plugins. + - Added a limit to the payload size of API endpoints passing in arrays. + - Added ``PreferencesHaveChanged`` plugin hook. + - Added ``GetPreferenceForUser`` plugin API. + - Added a new API endpoint ``GET /api/v4/users/report`` for system admin user reporting. + - Added a new API endpoint ``GET /api/v4/reports/users/count``. + +### Open Source Components + - Added ``@tanstack/react-table`` and ``prometheus/client_model`` to https://github.com/mattermost/mattermost/. + +### Go Version + - v9.5 is built with Go ``v1.20.7``. + +### Known Issues + - User autocomplete no longer stays closed after pressing ESC key [MM-56748](https://mattermost.atlassian.net/browse/MM-56748). + - 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. + - 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. + - The Playbooks left-hand sidebar doesn't update when a user is added to a run or playbook without a refresh. + - If a user isn't a member of a configured broadcast channel, posting a status update might fail without any error feedback. As a temporary workaround, join the configured broadcast channels, or remove those channels from the run configuration. + - The Playbooks left-hand sidebar does not update when a user is added to a run or playbook without a refresh. + +### Contributors + - [agarciamontoro](https://github.com/agarciamontoro), [agnivade](https://github.com/agnivade), [akbarkz](https://translate.mattermost.com/user/akbarkz), [amyblais](https://github.com/amyblais), [andriuspetrauskis](https://github.com/andriuspetrauskis), [andriuspre](https://github.com/andriuspre), [angeloskyratzakos](https://github.com/angeloskyratzakos), [asaadmahmood](https://github.com/asaadmahmood), [ayusht2810](https://github.com/ayusht2810), [azigler](https://github.com/azigler), [azistellar](https://translate.mattermost.com/user/azistellar), [azizthegit](https://github.com/azizthegit), [bbodenmiller](https://github.com/bbodenmiller), [BenCookie95](https://github.com/BenCookie95), [c0d33ngr](https://github.com/c0d33ngr), [catenacyber](https://github.com/catenacyber), [cedricongjh](https://github.com/cedricongjh), [Chlbek](https://translate.mattermost.com/user/Chlbek), [chriswachira](https://github.com/chriswachira), [coltoneshaw](https://github.com/coltoneshaw), [cpoile](https://github.com/cpoile), [cripton](https://github.com/cripton), [crspeller](https://github.com/crspeller), [ctlaltdieliet](https://github.com/ctlaltdieliet), [cwarnermm](https://github.com/cwarnermm), [cyberjam](https://github.com/cyberjam), [devinbinnie](https://github.com/devinbinnie), [duttakapil](https://github.com/duttakapil), [Eleferen](https://translate.mattermost.com/user/Eleferen), [enahum](https://github.com/enahum), [GabrielCasaro](https://github.com/GabrielCasaro), [gabrieljackson](https://github.com/gabrieljackson), [grundleborg](https://github.com/grundleborg), [hanzei](https://github.com/hanzei), [harshilsharma63](https://github.com/harshilsharma63), [heisdinesh](https://github.com/heisdinesh), [hmhealey](https://github.com/hmhealey), [hynex](https://translate.mattermost.com/user/hynex), [ifoukarakis](https://github.com/ifoukarakis), [isacikgoz](https://github.com/isacikgoz), [jespino](https://github.com/jespino), [johndavidlugtu](https://github.com/johndavidlugtu), [johnsonbrothers](https://github.com/johnsonbrothers), [jones](https://translate.mattermost.com/user/jones), [jprusch](https://github.com/jprusch), [JulienTant](https://github.com/JulienTant), [kaakaa](https://github.com/kaakaa), [kerochelo](https://github.com/kerochelo), [Kshitij-Katiyar](https://github.com/Kshitij-Katiyar), [larkox](https://github.com/larkox), [lieut-data](https://github.com/lieut-data), [lindalumitchell](https://github.com/lindalumitchell), [M-ZubairAhmed](https://github.com/M-ZubairAhmed), [majo](https://translate.mattermost.com/user/majo), [marianunez](https://github.com/marianunez), [master7](https://translate.mattermost.com/user/master7), [matoro](https://github.com/matoro), [matt-w99](https://github.com/matt-w99), [matthew-w](https://translate.mattermost.com/user/matthew-w), [mgdelacroix](https://github.com/mgdelacroix), [mickmister](https://github.com/mickmister), [milotype](https://translate.mattermost.com/user/milotype), [mkaraki](https://github.com/mkaraki), [mvitale1989](https://github.com/mvitale1989), [nickmisasi](https://github.com/nickmisasi), [Nityanand13](https://github.com/Nityanand13), [norma596](https://translate.mattermost.com/user/norma596), [Omar8345](https://github.com/Omar8345), [phoinixgrr](https://github.com/phoinixgrr), [raghavaggarwal2308](https://github.com/raghavaggarwal2308), [Rutam21](https://github.com/Rutam21), [RyoKub](https://github.com/RyoKub), [sapnasivakumar](https://github.com/sapnasivakumar), [saturninoabril](https://github.com/saturninoabril), [sbishel](https://github.com/sbishel), [ShrootBuck](https://github.com/ShrootBuck), [SkyDusH](https://translate.mattermost.com/user/SkyDusH), [sonichigo](https://github.com/sonichigo), [sri-byte](https://github.com/sri-byte), [stafot](https://github.com/stafot), [streamer45](https://github.com/streamer45), [stylianosrigas](https://github.com/stylianosrigas), [Sudhanva-Nadiger](https://github.com/Sudhanva-Nadiger), [Syed-Ali-Abbas-Zaidi](https://github.com/Syed-Ali-Abbas-Zaidi), [TealWater](https://github.com/TealWater), [thinkGeist](https://github.com/thinkGeist), [thomasbrq](https://github.com/thomasbrq), [ThrRip](https://github.com/ThrRip), [titanventura](https://github.com/titanventura), [toninis](https://github.com/toninis), [trangology](https://github.com/trangology), [tsabi](https://translate.mattermost.com/user/tsabi), [Utsav-Ladani](https://github.com/Utsav-Ladani), [varghesejose2020](https://github.com/varghesejose2020), [vish9812](https://github.com/vish9812), [VishalB98](https://github.com/VishalB98), [wiggin77](https://github.com/wiggin77), [Willy-Wakam](https://github.com/Willy-Wakam), [yasserfaraazkhan](https://github.com/yasserfaraazkhan), [yaz](https://translate.mattermost.com/user/yaz), [yomiadetutu1](https://github.com/yomiadetutu1) + +---- + +(release-v9-4-feature-release)= +## Release v9.4 - [Feature Release](https://docs.mattermost.com/upgrade/release-definitions.html#feature-release) + +- **9.4.5, released 2024-03-26** + - Mattermost v9.4.5 contains low to medium severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). + - Mattermost v9.4.5 contains no database or functional changes. +- **9.4.4, released 2024-03-06** + - Mattermost v9.4.4 contains low to medium severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). + - Mattermost v9.4.4 contains no database or functional changes. +- **9.4.3, released 2024-02-14** + - Mattermost v9.4.3 contains low to high severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). + - Mattermost v9.4.3 contains no database or functional changes. + - Pre-packaged Jira plugin version [v4.1.0](https://github.com/mattermost/mattermost-plugin-jira/releases/tag/v4.1.0). +- **9.4.2, released 2024-01-30** + - Mattermost v9.4.2 contains low to medium severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). + - Fixed an issue with true-up reports sending active users and not activated users. Added **Monthly Active Users** (MAU) as part of the true-up reports. + - Mattermost v9.4.2 contains no database or functional changes. +- **9.4.1, released 2024-01-16** + - Fixed an issue where ``getChannelMemberOnly`` failed to fetch data when certain fields were NULL. +- **9.4.0, released 2024-01-16** + - Original 9.4.0 release. + +### Important Upgrade Notes + - MySQL v5.7 is at end of life. We recommend all customers to upgrade to at least 8.x. For now, we are logging a warning. From Mattermost v9.5, which is the next Extended Support Release, we will stop supporting MySQL v5.7 altogether. + +```{Important} +If you upgrade from a release earlier than v9.3, please read the other [Important Upgrade Notes](https://docs.mattermost.com/upgrade/important-upgrade-notes.html). +``` + +### Compatibility + - Updated the minimum required Edge version to v118+. + +### Improvements + +See [this walkthrough video](https://www.youtube.com/watch?v=bEMp4vYLi6c&feature=youtu.be&ab_channel=Mattermost) on some of the improvements in our latest release below. + +#### User Interface (UI) + - Updated the pre-packaged GitHub plugin version to [v2.1.7](https://github.com/mattermost/mattermost-plugin-github/releases/tag/v2.1.7). + - Pre-packaged Calls plugin version [v0.22.2](https://github.com/mattermost/mattermost-plugin-calls/releases/tag/v0.22.2). + - Improved the user interface of the channel notifications modal. + - Emojis are now enlarged in emoji tooltips on mouse hover. + - Added a gap of 8px between buttons in the modal footer when opened in the mobile web view. + - Updated empty states to align with new branding and made changes to the empty state copy. + - Adjusted the position of the suggestion list in "Add to a channel" modal to be below or above the text field. + +#### Administration + - Added support for IP Filtering in Cloud (Cloud Enterprise plan) (this feature is disabled by default and behind a feature flag). + - Added support for Bring Your Own Key (BYOK) Encryption (Cloud Enterprise plan). + - An optional dedicated filestore is now used for compliance exports if configured (Cloud Enterprise plan). + - ``MessageExportSettings.GlobalRelaySettings.CustomerType`` now supports "CUSTOM". + - Added new ``ServerMetrics`` hook to allow plugins to register a custom HTTP endpoint to serve their metrics under the server's metrics HTTP listener. + - Admins now have the ability to pipe the output of ``mmctl websocket`` into the JSON parser. + - Added stores for OAuth **Outgoing Connections**. + - Added last login timestamp for users, and added a materialized view and a refresh job to keep track of post stats for PostgreSQL. + - Allowed plugin requests to include **Authorization** headers from external systems. + - Added a mmctl command ``mmctl system supportpacket`` to download the **Support Packet**. + - Added a new mmctl command ``oauth list`` for listing registered OAuth2 applications. + +### Bug Fixes + - Fixed an issue with the emoji reaction toggle behavior. + - Fixed an issue with the spacing between Playbooks and the separator in the Apps bar. + +### 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 all plans: + - Under ``RefreshPostStatsRunTime`` in ``config.json``: + - Added ``RefreshPostStatsRunTime`` to add last login timestamp for users and to add materialized view and refresh job to keep track of post stats for PostgreSQL. + +#### Changes to the Enterprise plan: + - Under ``GlobalRelayMessageExportSettings`` in ``config.json``: + - Added two new configuration settings ``CustomSMTPServerName`` and ``CustomSMTPPort`` to allow setting a custom URL and port for Global Relay export. This enables compliance export to integrate with Proofpoint. + +### Open Source Components: + - Added ``@mattermost/desktop-api`` and ``ipaddr.js`` to https://github.com/mattermost/mattermost/. + +### Go Version + - v9.4 is built with Go ``v1.20.7``. + +### Known Issues + - Non-channel-admin users can no longer use message links in private channels [MM-56575](https://mattermost.atlassian.net/browse/MM-56575). + - Preview doesn't work when editing a channel header [MM-56572](https://mattermost.atlassian.net/browse/MM-56572). + - The channel member count shows as zero in the **Browse channels** modal [MM-56266](https://mattermost.atlassian.net/browse/MM-56266). + - Adding an @mention at the start of a post draft and pressing the left or right arrow key can clear the post draft and the undo history [MM-33823](https://mattermost.atlassian.net/browse/MM-33823). + - 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. + - 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. + - The Playbooks left-hand sidebar doesn't update when a user is added to a run or playbook without a refresh. + - If a user isn't a member of a configured broadcast channel, posting a status update might fail without any error feedback. As a temporary workaround, join the configured broadcast channels, or remove those channels from the run configuration. + - The Playbooks left-hand sidebar does not update when a user is added to a run or playbook without a refresh. + +### Contributors + - [AayushChaudhary0001](https://github.com/AayushChaudhary0001), [aditipatelpro](https://github.com/aditipatelpro), [agarciamontoro](https://github.com/agarciamontoro), [agnivade](https://github.com/agnivade), [akbarkz](https://github.com/akbarkz), [Alpha-4](https://github.com/Alpha-4), [amyblais](https://github.com/amyblais), [andrius](https://translate.mattermost.com/user/andrius), [andriuspetrauskis](https://github.com/andriuspetrauskis), [andrleite](https://github.com/andrleite), [arthurhrg](https://github.com/arthurhrg), [arush-vashishtha](https://github.com/arush-vashishtha), [asaadmahmood](https://github.com/asaadmahmood), [avas27JTG](https://github.com/avas27JTG), [ayusht2810](https://github.com/ayusht2810), [azigler](https://github.com/azigler), [BenCookie95](https://github.com/BenCookie95), [caotanduc99](https://github.com/caotanduc99), [CI-YU](https://github.com/CI-YU), [codejagaban](https://github.com/codejagaban), [cpoile](https://github.com/cpoile), [crspeller](https://github.com/crspeller), [ctlaltdieliet](https://github.com/ctlaltdieliet), [cwarnermm](https://github.com/cwarnermm), [cyberjam](https://github.com/cyberjam), [danielsischy](https://github.com/danielsischy), [Dev-A-Line](https://translate.mattermost.com/user/Dev-A-Line), [devinbinnie](https://github.com/devinbinnie), [DHaussermann](https://github.com/DHaussermann), [dkkb](https://github.com/dkkb), [Eleferen](https://translate.mattermost.com/user/Eleferen), [enahum](https://github.com/enahum), [fmartingr](https://github.com/fmartingr), [FokinAleksandr](https://github.com/FokinAleksandr), [GabrielCasaro](https://github.com/GabrielCasaro), [gabrieljackson](https://github.com/gabrieljackson), [gabsfrancis](https://translate.mattermost.com/user/gabsfrancis), [grundleborg](https://github.com/grundleborg), [hanzei](https://github.com/hanzei), [harsh4723](https://github.com/harsh4723), [harshilsharma63](https://github.com/harshilsharma63), [hasancankucuk](https://github.com/hasancankucuk), [hereje](https://github.com/hereje), [hmhealey](https://github.com/hmhealey), [ifoukarakis](https://github.com/ifoukarakis), [isacikgoz](https://github.com/isacikgoz), [jasonblais](https://github.com/jasonblais), [jespino](https://github.com/jespino), [johnsonbrothers](https://github.com/johnsonbrothers), [jprusch](https://translate.mattermost.com/user/jprusch), [jwilander](https://github.com/jwilander), [kaakaa](https://github.com/kaakaa), [Kshitij-Katiyar](https://github.com/Kshitij-Katiyar), [larkox](https://github.com/larkox), [lieut-data](https://github.com/lieut-data), [lindalumitchell](https://github.com/lindalumitchell), [ludvigbolin](https://github.com/ludvigbolin), [lynn915](https://github.com/lynn915), [M-ZubairAhmed](https://github.com/M-ZubairAhmed), [majo](https://translate.mattermost.com/user/majo), [master7](https://translate.mattermost.com/user/master7), [matt-w99](https://github.com/matt-w99), [matthew-w](https://translate.mattermost.com/user/matthew-w), [matthewbirtch](https://github.com/matthewbirtch), [mgdelacroix](https://github.com/mgdelacroix), [mickmister](https://github.com/mickmister), [morgancz](https://github.com/morgancz), [mvitale1989](https://github.com/mvitale1989), [neflyte](https://github.com/neflyte), [nickmisasi](https://github.com/nickmisasi), [Paul-Stern](https://github.com/Paul-Stern), [pgteekens](https://translate.mattermost.com/user/pgteekens), [phoinixgrr](https://github.com/phoinixgrr), [PromoFaux](https://github.com/PromoFaux), [PulkitGarg-code](https://github.com/PulkitGarg-code), [raghavaggarwal2308](https://github.com/raghavaggarwal2308), [rajatdangat](https://github.com/rajatdangat), [relwell](https://github.com/relwell), [roaslin](https://github.com/roaslin), [rohan-kapse](https://github.com/rohan-kapse), [rohitkbc](https://github.com/rohitkbc), [Rutam21](https://github.com/Rutam21), [RyoKub](https://github.com/RyoKub), [saakshiraut28](https://github.com/saakshiraut28), [San4es](https://github.com/San4es), [sapnasivakumar](https://github.com/sapnasivakumar), [saturninoabril](https://github.com/saturninoabril), [sbishel](https://github.com/sbishel), [Sharuru](https://github.com/Sharuru), [ShlokJswl](https://github.com/ShlokJswl), [sinansonmez](https://github.com/sinansonmez), [srappan](https://github.com/srappan), [sri-byte](https://github.com/sri-byte), [srisri332](https://github.com/srisri332), [stafot](https://github.com/stafot), [streamer45](https://github.com/streamer45), [stylianosrigas](https://github.com/stylianosrigas), [Sudhanva-Nadiger](https://github.com/Sudhanva-Nadiger), [svelle](https://github.com/svelle), [Syed-Ali-Abbas-Zaidi](https://github.com/Syed-Ali-Abbas-Zaidi), [tanmaythole](https://github.com/tanmaythole), [TealWater](https://github.com/TealWater), [thomasbrq](https://github.com/thomasbrq), [ThrRip](https://github.com/ThrRip), [toninis](https://github.com/toninis), [tsabi](https://github.com/tsabi), [umrkhn](https://github.com/umrkhn), [varghesejose2020](https://github.com/varghesejose2020), [Vinecreeper888](https://github.com/Vinecreeper888), [weblate](https://github.com/weblate), [wiggin77](https://github.com/wiggin77), [yasserfaraazkhan](https://github.com/yasserfaraazkhan), [yomiadetutu1](https://github.com/yomiadetutu1), [ZubairImtiaz3](https://github.com/ZubairImtiaz3) + +---- + +(release-v9-3-feature-release)= +## Release v9.3 - [Feature Release](https://docs.mattermost.com/upgrade/release-definitions.html#feature-release) + +- **9.3.3, released 2024-03-06** + - Mattermost v9.3.3 contains low to medium severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). + - Mattermost v9.3.3 contains no database or functional changes. +- **9.3.2, released 2024-02-14** + - Mattermost v9.3.2 contains low to high severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). + - Mattermost v9.3.2 contains no database or functional changes. + - Pre-packaged Jira plugin version [v4.1.0](https://github.com/mattermost/mattermost-plugin-jira/releases/tag/v4.1.0). +- **9.3.1, released 2024-01-30** + - Mattermost v9.3.1 contains low to medium severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). + - Mattermost v9.3.1 contains no database or functional changes. +- **9.3.0, released 2023-12-15** + - Original 9.3.0 release. + +### Important Upgrade Notes + - Please read the [Important Upgrade Notes](https://docs.mattermost.com/upgrade/important-upgrade-notes.html) before upgrading. + +### Compatibility + - Updated minimum required Firefox version to v115+. + - Updated minimum supported Chromium version to 118+. + +### Improvements + +See [this walkthrough video](https://www.youtube.com/watch?v=eXA8emM97Bo) on some of the improvements in our latest release below. + +#### User Interface (UI) + - Updated pre-packaged Playbooks plugin version to [v1.39.1](https://github.com/mattermost/mattermost-plugin-playbooks/releases/tag/v1.39.1). + - Updated pre-packaged Calls version to [v0.21.1](https://github.com/mattermost/mattermost-plugin-calls/releases/tag/v0.21.1). + - Updated pre-packaged Jira plugin version to [v4.0.1](https://github.com/mattermost/mattermost-plugin-jira/releases/tag/v4.0.1). Also see [v4.0.0](https://github.com/mattermost/mattermost-plugin-jira/releases/tag/v4.0.0) for recent breaking changes. + - Added Vietnamese (Beta) as a new language. + - Added the ability to passively track keywords with highlights without triggering a notification (Professional and Enterprise plans). + - Updated the **Settings** modal with an improved user interface. + - Added a new **Jump to recents** banner when a channel is scrolled up. + - Modified the behavior of the code button (Ctrl+Alt+C) to create inline codes or code blocks. + - Disabled markdown keybindings within code blocks. + - Added a **Back** button to the ``/access_problem`` page. + - Added a default limit of the number of reactions per post. + +#### Performance + - Removed pre-fetch preference and set new prefetch limits for the webapp. + - Improved websocket event marshaling performance. + - Batched loading of recently used emojis on initial load. + +#### Administration + - The tooltip on the announcement bar in the **System Console** is now widened. + - Improved the error message when trying to activate a plugin in an unsupported environment. + - Added a file storage permission check to the workspace health dashboard. + - Performed a cleanup in preparation for adding support for multi-word keywords that trigger notification. + - Added a warning log message when the app runs as root. + - Removed all uses of the ``ExperimentalTimezone`` setting. The Timezone feature is now always enabled and no longer behind a configuration setting. + - Added support for previewing WebVTT attachments. + - Introduced separate ``AdvancedLogging`` levels for LDAP messages. + - Introduced trace logging level for LDAP messages. + - Added a new way to modify ``WebSocket`` messages sent to individual connections. + - Added a new server side hook ``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. + - Users and posts are now pretty-printed in the logs. + - Improved file extraction logging. + - Exposed ``ThreadView`` and ``AdvancedCreateComment`` components in the webapp plugin exported components list. + - Added **Logging > Advanced Logging** setting to the **System Console** to allow admins to configure custom log targets via the user interface. + +### Bug Fixes + - Fixed an issue where marking a Group Message as unread didn't show the badge count correctly. + - Fixed an issue where ``invite_id`` was being reset on all team changes. + - Fixed an issue where interactive dialog elements with subtype ``number`` didn't handle a ``0`` value properly. + - Fixed an issue with the download link in channel file search items when including a path in the **Site URL** setting. + - Fixed an issue with the formatting of special mentions in the right-hand side. + - Fixed ``MessageWillBeUpdated`` plugin hook to allow rejections. + - Fixed an issue with some shortcuts not working as expected. + - Fixed the message history not clearing the input on the center channel. + - Fixed an issue where a higher contrast was generated for some usernames. + - Fixed an issue where newly created Group Messages showed having 0 members. + - Fixed an issue where an incorrect timestamp was assigned to support packet files. + - Fixed an issue where the **Reset Password** link was not displayed if only LDAP/AD was enabled. + - Fixed an issue where **Recent Mentions** showed posts for other similar named users. + - Fixed an error that appeared when updating the header of Group Messages. + - Fixed an issue that caused the server to get stuck during shutdown due to a deadlock in a dependency. + - Fixed an issue where Desktop App clients would be shown an error when trying to open file preview links. + - Fixed an issue with double URL encoding of Oauth redirect URI params. + - Fixed an issue where users couldn't at-mention custom groups in group constrained teams and channels. + - Fixed an issue where the channel admin wasn't being set when converting a Group Message to a private channel. + +### 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 all plans: + - Removed ``DisplaySettings.ExperimentalTimezone`` setting. + - Under ``ServiceSettings`` in ``config.json``: + - Added ``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. + +### API Changes + - Added an API to batch requests for custom emojis on page load. + +### Database Changes + - ``NextSyncAt`` and ``Description`` columns are removed from the ``SharedChannelsRemotes`` table. Migration impact is considered to be minimal considering the possible table size. + +### Go Version + - v9.3 is built with Go ``v1.20.7``. + +### Known Issues + - Mattermost Omnibus: Unable to install omnibus due to unmet dependencies [MM-56080](https://mattermost.atlassian.net/browse/MM-56080). + - Adding an @mention at the start of a post draft and pressing the left or right arrow key can clear the post draft and the undo history [MM-33823](https://mattermost.atlassian.net/browse/MM-33823). + - 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. + - 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. + - The Playbooks left-hand sidebar doesn't update when a user is added to a run or playbook without a refresh. + - If a user isn't a member of a configured broadcast channel, posting a status update might fail without any error feedback. As a temporary workaround, join the configured broadcast channels, or remove those channels from the run configuration. + - The Playbooks left-hand sidebar does not update when a user is added to a run or playbook without a refresh. + +### Contributors + - [agarciamontoro](https://github.com/agarciamontoro), [agnivade](https://github.com/agnivade), [AirGoatOne](https://github.com/AirGoatOne), [akbarkz](https://github.com/akbarkz), [amigo7kr](https://github.com/amigo7kr), [amyblais](https://github.com/amyblais), [anneschuth](https://github.com/anneschuth), [ARJ2160](https://github.com/ARJ2160), [Arslan-work](https://github.com/Arslan-work), [arthurh](https://translate.mattermost.com/user/arthurh), [arthurhrg](https://github.com/arthurhrg), [Aryakoste](https://github.com/Aryakoste), [asaadmahmood](https://github.com/asaadmahmood), [AshishDhama](https://github.com/AshishDhama), [avas27JTG](https://github.com/avas27JTG), [AvaterClasher](https://github.com/AvaterClasher), [ayusht2810](https://github.com/ayusht2810), [azigler](https://github.com/azigler), [BandhiyaHardik](https://github.com/BandhiyaHardik), [BenCookie95](https://github.com/BenCookie95), [Benjamin-Loison](https://github.com/Benjamin-Loison), [calebroseland](https://github.com/calebroseland), [catenacyber](https://github.com/catenacyber), [cedarice](https://github.com/cedarice), [CI-YU](https://github.com/CI-YU), [coltoneshaw](https://github.com/coltoneshaw), [cpoile](https://github.com/cpoile), [crspeller](https://github.com/crspeller), [ctlaltdieliet](https://github.com/ctlaltdieliet), [cwarnermm](https://github.com/cwarnermm), [Davut97](https://github.com/Davut97), [deepakumarvu](https://github.com/deepakumarvu), [devinbinnie](https://github.com/devinbinnie), [Dhoni77](https://github.com/Dhoni77), [DimitriDR](https://translate.mattermost.com/user/DimitriDR), [edwardnguyen225](https://github.com/edwardnguyen225), [Eleferen](https://translate.mattermost.com/user/Eleferen), [emdecr](https://github.com/emdecr), [Emil-Carlsson](https://github.com/Emil-Carlsson), [enahum](https://github.com/enahum), [escofresco](https://github.com/escofresco), [fandour](https://translate.mattermost.com/user/fandour), [fazil-syed](https://github.com/fazil-syed), [fmartingr](https://github.com/fmartingr), [gabrieljackson](https://github.com/gabrieljackson), [hanzei](https://github.com/hanzei), [harshal2030](https://github.com/harshal2030), [harshilsharma63](https://github.com/harshilsharma63), [heisdinesh](https://github.com/heisdinesh), [hmhealey](https://github.com/hmhealey), [ifoukarakis](https://github.com/ifoukarakis), [imamimam113](https://github.com/imamimam113), [imkrishnasarathi](https://github.com/imkrishnasarathi), [isacikgoz](https://github.com/isacikgoz), [jasonblais](https://github.com/jasonblais), [jespino](https://github.com/jespino), [johndavidlugtu](https://github.com/johndavidlugtu), [johnsonbrothers](https://github.com/johnsonbrothers), [jonathanwiemers](https://github.com/jonathanwiemers), [jprusch](https://github.com/jprusch), [JulienTant](https://github.com/JulienTant), [jwilander](https://github.com/jwilander), [kaakaa](https://github.com/kaakaa), [kapdev](https://translate.mattermost.com/user/kapdev), [kayazeren](https://github.com/kayazeren), [Kimbohlovette](https://github.com/Kimbohlovette), [Kshitij-Katiyar](https://github.com/Kshitij-Katiyar), [KuSh](https://github.com/KuSh), [kyeongsoosoo](https://github.com/kyeongsoosoo), [larkox](https://github.com/larkox), [LeonardJouve](https://github.com/LeonardJouve), [lieut-data](https://github.com/lieut-data), [lindy65](https://github.com/lindy65), [linkvn](https://github.com/linkvn), [ludvigbolin](https://github.com/ludvigbolin), [M-ZubairAhmed](https://github.com/M-ZubairAhmed), [m1lt0n](https://github.com/m1lt0n), [majo](https://translate.mattermost.com/user/majo), [manojmalik20](https://github.com/manojmalik20), [master7](https://translate.mattermost.com/user/master7), [matt-w99](https://github.com/matt-w99), [matthew-w](https://translate.mattermost.com/user/matthew-w), [matthewbirtch](https://github.com/matthewbirtch), [maxtrem271991](https://github.com/maxtrem271991), [mickmister](https://github.com/mickmister), [milotype](https://github.com/milotype), [mozi47](https://github.com/mozi47), [mvitale1989](https://github.com/mvitale1989), [nathanaelhoun](https://github.com/nathanaelhoun), [newdominic](https://github.com/newdominic), [nickmisasi](https://github.com/nickmisasi), [nosyn](https://github.com/nosyn), [otilor](https://github.com/otilor), [pacop](https://github.com/pacop), [Paul-Stern](https://github.com/Paul-Stern), [Paul-vrn](https://github.com/Paul-vrn), [phoinixgrr](https://github.com/phoinixgrr), [proggga](https://github.com/proggga), [pvev](https://github.com/pvev), [raghavaggarwal2308](https://github.com/raghavaggarwal2308), [rahulsuresh-git](https://github.com/rahulsuresh-git), [rashmibharambe](https://github.com/rashmibharambe), [Reene-Simon](https://github.com/Reene-Simon), [rohan-kapse](https://github.com/rohan-kapse), [rohitkbc](https://github.com/rohitkbc), [rubinaga](https://github.com/rubinaga), [RyoKub](https://github.com/RyoKub), [san70sh](https://github.com/san70sh), [sapnasivakumar](https://github.com/sapnasivakumar), [sbishel](https://github.com/sbishel), [seoyeongeun](https://github.com/seoyeongeun), [Sharuru](https://github.com/Sharuru), [shivamjosh](https://github.com/shivamjosh), [sinansonmez](https://github.com/sinansonmez), [Sn-Kinos](https://github.com/Sn-Kinos), [sp6370](https://github.com/sp6370), [sri-byte](https://github.com/sri-byte), [stafot](https://github.com/stafot), [streamer45](https://github.com/streamer45), [stylianosrigas](https://github.com/stylianosrigas), [Sudhanva-Nadiger](https://github.com/Sudhanva-Nadiger), [sudheer121](https://github.com/sudheer121), [Syed-Ali-Abbas-Zaidi](https://github.com/Syed-Ali-Abbas-Zaidi), [tanmaythole](https://github.com/tanmaythole), [tejas161](https://github.com/tejas161), [thomasbrq](https://github.com/thomasbrq), [ThrRip](https://github.com/ThrRip), [TomerPacific](https://github.com/TomerPacific), [toninis](https://github.com/toninis), [trivikr](https://github.com/trivikr), [tsabi](https://github.com/tsabi), [turretkeeper](https://github.com/turretkeeper), [umrkhn](https://github.com/umrkhn), [vish9812](https://github.com/vish9812), [wcdfilll](https://translate.mattermost.com/user/wcdfilll), [wiebel](https://github.com/wiebel), [wiggin77](https://github.com/wiggin77), [yasserfaraazkhan](https://github.com/yasserfaraazkhan), [yomiadetutu1](https://github.com/yomiadetutu1) + +---- + +(release-v9-2-feature-release)= +## Release v9.2 - [Feature Release](https://docs.mattermost.com/upgrade/release-definitions.html#feature-release) + +- **9.2.6, released 2024-02-14** + - Mattermost v9.2.6 contains low to high severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). + - Mattermost v9.2.6 contains no database or functional changes. + - Pre-packaged Jira plugin version [v4.1.0](https://github.com/mattermost/mattermost-plugin-jira/releases/tag/v4.1.0). +- **9.2.5, released 2024-01-30** + - Mattermost v9.2.5 contains low to medium severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). + - Mattermost v9.2.5 contains no database or functional changes. +- **9.2.4, released 2024-01-09** + - Mattermost v9.2.4 contains medium severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). + - Mattermost v9.2.4 contains the following functional changes: + - Fixed an issue where invalid reactions could be added to posts. Added default limit of the number of reactions per post. +- **9.2.3, released 2023-11-29** + - Mattermost v9.2.3 contains medium severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). + - Mattermost v9.2.3 contains no database or functional changes. + - Pre-packaged Calls plugin version [v0.21.1](https://github.com/mattermost/mattermost-plugin-calls/releases/tag/v0.21.1). +- **9.2.2, released 2023-11-08** + - Mattermost v9.2.2 contains a high severity level security fix. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). + - Pre-packaged Playbooks plugin version [v1.39.1](https://github.com/mattermost/mattermost-plugin-playbooks/releases/tag/v1.39.1). + - Fixed an issue where the **About Mattermost** dialog reported an incorrect server version. +- **9.2.1, released 2023-11-06** + - Fixed an issue where Ubuntu GLIBC errors were thrown on Ubuntu 20.04 and Debian Bullseye versions. +- **9.2.0, released 2023-11-02** + - Original 9.2.0 release + +### Important Upgrade Notes + - Fixed data retention policies to run jobs when any custom retention policy is enabled even when the global retention policy is set to **keep-forever**. Before this fix, the enabled custom data retention policies wouldn’t run as long as the global data retention policy was set to **keep-forever** or was disabled. After the fix, the custom data retention policies will run automatically even when the global data retention policy is set to **keep-forever**. Once the server is upgraded, posts may unintentionally be deleted. Admins should make sure to disable all custom data retention policies before upgrading, and then re-enable them again after upgrading. + +```{Important} +If you upgrade from a release earlier than v9.1, please read the other [Important Upgrade Notes](https://docs.mattermost.com/upgrade/important-upgrade-notes.html). +``` + +### Compatibility + - Updated minimum required Edge version to 116+. + +### Improvements + +See [this walkthrough video](https://www.youtube.com/watch?v=udC2OCTGooc&feature=youtu.be&ab_channel=Mattermost) on some of the improvements in our latest release below. + +#### User Interface (UI) + - Improved readability by displaying system messages on multiple lines when editing a channel header. + - Combined "joined/left" event types in system messages. + - Added a new user preference to disable webapp prefetching via **Settings > Advanced > Allow Mattermost to prefetch channel posts**. You must enable **Client Performance Debugging** in the System Console by going to **Environment > Developer** in order for this setting to appear. This setting and Client Performance Debugging should only be enabled temporarily if users are experiencing performance issues. + - Pre-packaged NPS plugin version [v1.3.3](https://github.com/mattermost/mattermost-plugin-nps/releases/tag/v1.3.3). + - Pre-packaged Todo plugin version [v0.7.1](https://github.com/mattermost/mattermost-plugin-todo/releases/tag/v0.7.1). + +#### Administration + - JSON null value cases are now handled correctly by also checking that the pointer is no longer null when unmarshalling to a pointer. + - An annotated logger is now used to capture LDAP and SAML logs. + - Replaced ``github.com/mattermost/gziphandler`` with ``github.com/klauspost/compress/gzhttp``. + - Performance metrics now contain information on if a given request was sent during a page load or a websocket reconnect. + - Elasticsearch aggregation jobs no longer start when a bulk indexing job is currently running. + - Added heap profile, CPU profile, and goroutines profile to the support package. + - Merged WIP i18n locales, but disallowed selecting unsupported locales. + +### Bug Fixes + - Fixed a panic where a simple worker would crash if it failed to get a job. + - Fixed post props on update to properly see channel links. + - Fixed an issue where the API for drafts would return empty drafts. + - Fixed the alignment of the **Help** menu in the global header. + - Fixed a broken link in the **Edit Channel** header modal. + - Fixed an issue that prevented users to be added to channels from the System Console. + - Fixed an issue where the channel member count increased when adding an already present user. + - Fixed an issue where plugin developers were unable to create a ``textarea`` in interactive dialogs. + - Fixed an issue where copy pasting images from Chrome failed. + +### 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 all plans: + - Under ``LogSettings`` in ``config.json``: + - Added a new configuration setting ``MaxFieldSize`` to add the ability to size-limit log fields during logging. + +### API Changes + - Added ``origin_client`` to the ``mattermost_api_time`` metrics. + +### Go Version + - v9.2 is built with Go ``v1.20.7``. + +### Known Issues + - Adding an @mention at the start of a post draft and pressing the left or right arrow key can clear the post draft and the undo history [MM-33823](https://mattermost.atlassian.net/browse/MM-33823). + - 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. + - 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. + - The Playbooks left-hand sidebar doesn't update when a user is added to a run or playbook without a refresh. + - If a user isn't a member of a configured broadcast channel, posting a status update might fail without any error feedback. As a temporary workaround, join the configured broadcast channels, or remove those channels from the run configuration. + - The Playbooks left-hand sidebar does not update when a user is added to a run or playbook without a refresh. + +### Contributors + - [aayushborkar14](https://github.com/aayushborkar14), [AayushChaudhary0001](https://github.com/AayushChaudhary0001), [AbhineshJha](https://github.com/AbhineshJha), [agarciamontoro](https://github.com/agarciamontoro), [agnivade](https://github.com/agnivade), [akaMrDC](https://github.com/akaMrDC), [akbarkz](https://github.com/akbarkz), [alejdg](https://github.com/alejdg), [Alphanum404](https://github.com/Alphanum404), [amigo7kr](https://translate.mattermost.com/user/amigo7kr), [amyblais](https://github.com/amyblais), [amynicol1985](https://github.com/amynicol1985), [andrew-delph](https://github.com/andrew-delph), [andrleite](https://github.com/andrleite), [angeloskyratzakos](https://github.com/angeloskyratzakos), [aniketh-varma](https://github.com/aniketh-varma), [anneschuth](https://translate.mattermost.com/user/anneschuth), [apshada](https://github.com/apshada), [ARJ2160](https://github.com/ARJ2160), [ArturBa](https://github.com/ArturBa), [asaadmahmood](https://github.com/asaadmahmood), [AsisRout](https://github.com/AsisRout), [avas27JTG](https://github.com/avas27JTG), [AvaterClasher](https://github.com/AvaterClasher), [ayrotideysarkar](https://github.com/ayrotideysarkar), [ayusht2810](https://github.com/ayusht2810), [balajik](https://github.com/balajik), [Bangik](https://github.com/Bangik), [bartaz](https://translate.mattermost.com/user/bartaz), [BaumiCoder](https://github.com/BaumiCoder), [BenCookie95](https://github.com/BenCookie95), [bishalpal](https://github.com/bishalpal), [calebroseland](https://github.com/calebroseland), [cedarice](https://translate.mattermost.com/user/cedarice), [cescpmantidfly](https://translate.mattermost.com/user/cescpmantidfly), [CI-YU](https://github.com/CI-YU), [Ciggzy1312](https://github.com/Ciggzy1312), [codeEmpress1](https://github.com/codeEmpress1), [coltoneshaw](https://github.com/coltoneshaw), [costa-neto](https://github.com/costa-neto), [cpoile](https://github.com/cpoile), [crspeller](https://github.com/crspeller), [ctlaltdieliet](https://github.com/ctlaltdieliet), [cwarnermm](https://github.com/cwarnermm), [danialkeimasi](https://github.com/danialkeimasi), [Delaney](https://github.com/Delaney), [devinbinnie](https://github.com/devinbinnie), [DHaussermann](https://github.com/DHaussermann), [dhnlr](https://github.com/dhnlr), [dipandhali2021](https://github.com/dipandhali2021), [Eleferen](https://translate.mattermost.com/user/Eleferen), [emdecr](https://github.com/emdecr), [enahum](https://github.com/enahum), [escofresco](https://github.com/escofresco), [esethna](https://github.com/esethna), [fazil-syed](https://github.com/fazil-syed), [fmartingr](https://github.com/fmartingr), [frjaraur](https://github.com/frjaraur), [fyfirman](https://github.com/fyfirman), [gabrieljackson](https://github.com/gabrieljackson), [Gauravpadam](https://github.com/Gauravpadam), [gibsonliketheguitar](https://github.com/gibsonliketheguitar), [h1usertest](https://translate.mattermost.com/user/h1usertest), [hanzei](https://github.com/hanzei), [harsh-solanki21](https://github.com/harsh-solanki21), [harshal2030](https://github.com/harshal2030), [harshalkh](https://github.com/harshalkh), [harshilsharma63](https://github.com/harshilsharma63), [hmhealey](https://github.com/hmhealey), [ialorro](https://github.com/ialorro), [ifoukarakis](https://github.com/ifoukarakis), [imamimam113](https://translate.mattermost.com/user/imamimam113), [isacikgoz](https://github.com/isacikgoz), [iyampaul](https://github.com/iyampaul), [izruff](https://github.com/izruff), [janlengyel](https://github.com/janlengyel), [jannikbertram](https://github.com/jannikbertram), [jasonblais](https://github.com/jasonblais), [jespino](https://github.com/jespino), [jgilliam17](https://github.com/jgilliam17), [jlandells](https://github.com/jlandells), [johnsonbrothers](https://github.com/johnsonbrothers), [josephjosedev](https://github.com/josephjosedev), [jprusch](https://github.com/jprusch), [js029](https://github.com/js029), [jufab](https://github.com/jufab), [JulienTant](https://github.com/JulienTant), [kaakaa](https://github.com/kaakaa), [kalvdans](https://github.com/kalvdans), [kayazeren](https://github.com/kayazeren), [komodin](https://github.com/komodin), [Kritik-J](https://github.com/Kritik-J), [Kshitij-Katiyar](https://github.com/Kshitij-Katiyar), [KuSh](https://github.com/KuSh), [larkox](https://github.com/larkox), [letehaha](https://github.com/letehaha), [libklein](https://github.com/libklein), [lieut-data](https://github.com/lieut-data), [linkvn](https://github.com/linkvn), [ludvigbolin](https://github.com/ludvigbolin), [M-ZubairAhmed](https://github.com/M-ZubairAhmed), [majo](https://translate.mattermost.com/user/majo), [manojmalik20](https://github.com/manojmalik20), [ManuMinue](https://github.com/ManuMinue), [marianunez](https://github.com/marianunez), [master7](https://translate.mattermost.com/user/master7), [matt-w99](https://github.com/matt-w99), [matthew-w](https://translate.mattermost.com/user/matthew-w), [matthewbirtch](https://github.com/matthewbirtch), [maxtrem271991](https://github.com/maxtrem271991), [mgdelacroix](https://github.com/mgdelacroix), [mickmister](https://github.com/mickmister), [milotype](https://translate.mattermost.com/user/milotype), [mishmanners](https://github.com/mishmanners), [MixeroTN](https://github.com/MixeroTN), [mnj93](https://github.com/mnj93), [mujpao](https://github.com/mujpao), [mustdiechik](https://github.com/mustdiechik), [mvitale1989](https://github.com/mvitale1989), [namanh-asher](https://github.com/namanh-asher), [Navystack](https://github.com/Navystack), [nickmisasi](https://github.com/nickmisasi), [Nico7as](https://translate.mattermost.com/user/Nico7as), [Nityanand13](https://github.com/Nityanand13), [NohaFahmi](https://github.com/NohaFahmi), [otilor](https://github.com/otilor), [Paul-vrn](https://github.com/Paul-vrn), [Peyo6565](https://github.com/Peyo6565), [phoinixgrr](https://github.com/phoinixgrr), [pvev](https://github.com/pvev), [qryptdev](https://github.com/qryptdev), [Quijuletim470](https://translate.mattermost.com/user/Quijuletim470), [returnedinformation](https://github.com/returnedinformation), [riteshmukim](https://github.com/riteshmukim), [rubinaga](https://github.com/rubinaga), [Rutam21](https://github.com/Rutam21), [saideepesh000](https://github.com/saideepesh000), [SaketKaswa20](https://github.com/SaketKaswa20), [saturninoabril](https://github.com/saturninoabril), [sbishel](https://github.com/sbishel), [seoyeongeun](https://translate.mattermost.com/user/seoyeongeun), [Sharuru](https://github.com/Sharuru), [sjcode99](https://github.com/sjcode99), [sondrekje](https://github.com/sondrekje), [sonu27](https://github.com/sonu27), [sp6370](https://github.com/sp6370), [sri-byte](https://github.com/sri-byte), [stafot](https://github.com/stafot), [StreakInTheSky](https://github.com/StreakInTheSky), [streamer45](https://github.com/streamer45), [stylianosrigas](https://github.com/stylianosrigas), [Sudhanva-Nadiger](https://github.com/Sudhanva-Nadiger), [sudheer121](https://github.com/sudheer121), [syedzubeen](https://github.com/syedzubeen), [Tahanima](https://github.com/Tahanima),[tanmaythole](https://github.com/tanmaythole), [this-is-tobi](https://github.com/this-is-tobi), [ThrRip](https://github.com/ThrRip), [TomerPacific](https://github.com/TomerPacific), [toninis](https://github.com/toninis), [trilopin](https://github.com/trilopin), [umrkhn](https://github.com/umrkhn), [varghesejose2020](https://github.com/varghesejose2020), [venugopal1234567](https://github.com/venugopal1234567), [vip2441](https://github.com/vip2441), [wiersgallak](https://github.com/wiersgallak), [wiggin77](https://github.com/wiggin77), [yasserfaraazkhan](https://github.com/yasserfaraazkhan), [yesbhautik](https://github.com/yesbhautik), [ylac](https://github.com/ylac), [ZubairImtiaz3](https://github.com/ZubairImtiaz3) + +---- + +(release-v9-1-feature-release)= +## Release v9.1 - [Feature Release](https://docs.mattermost.com/upgrade/release-definitions.html#feature-release) + +- **9.1.5, released 2024-01-09** + - Mattermost v9.1.5 contains medium severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). + - Mattermost v9.1.5 contains the following functional changes: + - Fixed an issue where invalid reactions could be added to posts. Added default limit of the number of reactions per post. +- **9.1.4, released 2023-11-29** + - Mattermost v9.1.4 contains medium severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). + - Mattermost v9.1.4 contains no database or functional changes. + - Pre-packaged Calls plugin version [v0.21.1](https://github.com/mattermost/mattermost-plugin-calls/releases/tag/v0.21.1). +- **9.1.3, released 2023-11-13** + - Mattermost v9.1.3 contains low to high severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). + - Mattermost v9.1.3 contains no database or functional changes. + - Pre-packaged Playbooks plugin version [v1.39.1](https://github.com/mattermost/mattermost-plugin-playbooks/releases/tag/v1.39.1). + - Fixed an issue where the **About Mattermost** dialog reported an incorrect server version. +- **9.1.2, released 2023-11-06** + - Mattermost v9.1.2 contains low to high severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). + - Mattermost v9.1.2 contains no database or functional changes. +- **9.1.1, released 2023-10-27** + - Mattermost v9.1.1 contains low to medium severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). + - Pre-packaged Focalboard plugin [v7.11.4](https://github.com/mattermost/focalboard/releases/tag/v7.11.4). + - Mattermost v9.1.1 contains the following functional changes: + - Added a new configuration setting ``MaxFieldSize`` to add the ability to size-limit log fields during logging. + - Added a restriction to the mobile Oauth / SAML redirection to match the ``NativeAppSettings.AppCustomURLSchemes`` configuration setting. +- **9.1.0, released 2023-10-16** + - Original 9.1.0 release + +### Important Upgrade Notes + - Improved performance on data retention ``DeleteOrphanedRows`` queries. See the [Important Upgrade Notes](https://docs.mattermost.com/upgrade/important-upgrade-notes.html) 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. + - Minimum supported Desktop App version is now v5.3. OAuth/SAML flows were modified to include ``desktop_login`` which makes earlier versions incompatible. + +```{Important} +If you upgrade from a release earlier than v9.0, please read the other [Important Upgrade Notes](https://docs.mattermost.com/upgrade/important-upgrade-notes.html). +``` + +### Compatibility + - Updated Chromium minimum supported version to 116+. + +### Highlights + +#### Never Miss Group Messages Again + - Group messages (GMs) now behave like direct messages (DMs). [The badge count increases for every new message](https://docs.mattermost.com/collaborate/channel-types.html#group-messages). + +#### Convert Group Messages to Private Channels + - Added the ability to [convert a group message to a private channel](https://docs.mattermost.com/collaborate/convert-group-messages.html). + +See [this walkthrough video](https://www.youtube.com/watch?v=dbHg-63J9dA) on the highlights and some of the below improvements in our latest release. + +### Improvements + +#### User Interface (UI) + - Added a **Cancel** button to the **Delete category** modal. + - Added the ability to resize the channel sidebar and right-hand sidebar. + - Added two new filtering options (show all channel types and show private channels) to the **Browse channels** modal. + - Pre-packaged GitLab plugin version [v1.7.0](https://github.com/mattermost/mattermost-plugin-gitlab/releases/tag/v1.7.0). + - Pre-packaged Calls plugin version [v0.20.0](https://github.com/mattermost/mattermost-plugin-calls/releases/tag/v0.20.0). + - Pre-packaged Playbooks version [v1.39.0](https://github.com/mattermost/mattermost-plugin-playbooks/releases/tag/v1.39.0). + - Added additional reaction options when viewing threads or messages when the sidebar is larger than its minimum width. + - Added a link to [notification documentation](https://docs.mattermost.com/preferences/manage-your-notifications.html) in the **Notification Settings** modal. + - Updated the post textbox measurement code to be more reliable. + - The ``/invite`` slash command now supports custom user groups. + - Re-enabled the remote marketplace functionality, when configured as per ``PluginSettings.EnableRemoteMarketplace`` [documentation](https://docs.mattermost.com/configure/plugins-configuration-settings.html#plugins-enableremotemarketplace). + +#### Administration + - Added ``mattermost-plugin-api`` into the ``mattermost`` GitHub repository. + - Updated the public server module version to v0.0.9. + - Added 2 new URL parameters to ``GET /api/v4/groups``: ``include_archived`` and ``filter_archived``. Added the ability to restore archived groups from the user groups modal. + - Added file storage information to the support package. + - A ``user_id`` is now included in all HTTP logs (debug level) to help determine who is generating unexpected traffic. + - Added new URL parameter to ``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. + +#### Plugin Changes + - Added new frontend plugin extension point for the new messages separator bar. + - Added a new plugin extensibility point to add actions to the code blocks. + - Added the plugin hook ``UserHasBeenDeactivated``. + - Added a new server side plugin API method to set the searchable content for file info (``SetFileSearchableContent``). The ``MessageHasBeenPosted`` plugin hook is now executed after the attachments are linked to the post. + +### Bug Fixes + - Fixed keyboard support for the left-hand side channel menu, the left-hand side category menu, and the post dot menu. + - Fixed display name in the ``comment_on`` component. + - Fixed an issue with keyboard support for some menus with submenus. + - Fixed an issue with disappearing punctuation when following a group mention. + - Fixed an issue where compliance export jobs were not able to start after disabling and enabling the compliance export. + - Fixed a potential read after write issue when loading a license. + - Fixed the API to block any changes to direct and group messages names, display name, or purpose. + +### 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 all plans: + - Removed ``ServiceSettingsDefaultGfycatAPISecret`` and ``ServiceSettingsDefaultGfycatAPIKey`` configuration settings. + - Under ``TeamSettings`` in ``config.json``: + - Added a new config setting ``EnableJoinLeaveMessageByDefault`` that sets the default value for ``UserSetting``, ``ADVANCED_FILTER_JOIN_LEAVE``. + - Under ``DisplaySettings`` in ``config.json``: + - Added a setting ``MaxMarkdownNodes`` to limit the maximum complexity of markdown text on mobile. + + #### Changes to Enterprise plan: + - Under ``DataRetentionSettings`` in ``config.json``: + - Added a new configuration setting ``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. + +### API Changes + - Added the ``X-Forwarded-For`` request header to the audit stream for all Rest API calls. + - Added API endpoint ``POST /api/v4/user/login/desktop_login``. Modified OAuth/SAML flows to include ``desktop_login`` where applicable. + - Added new API endpoint ``GET`` ``/api/v4/channels//common_teams`` to fetch list of teams common between members of a group message. + - Added new API endpoint ``POST`` ``/api/v4/channels//convert_to_channel`` to convert a group message to a private channel. + - Added a new ``MessageHasBeenDeleted`` hook to the plugin API. + - Moved the ``request`` package into the public shared folder. + +### Go Version + - v9.1 is built with Go ``v1.20.7``. + +### Known Issues + - Converting a group message to a channel should show an error "A channel with that name already exists on the same team" for duplicate channel names [MM-54713](https://mattermost.atlassian.net/browse/MM-54713). + - Marking a group message as unread doesn't resurface the numbered notification badge [MM-54778](https://mattermost.atlassian.net/browse/MM-54778). + - Thread/posts jump when switching to and from preview mode [MM-54758](https://mattermost.atlassian.net/browse/MM-54758). + - Desktop UI doesn't show all content when the right-hand side thread is opened [MM-54696](https://mattermost.atlassian.net/browse/MM-54696). + - Left-hand side resize option overrides the **Browse/Create Channel** menu if To-Do plugin is installed [MM-54367](https://mattermost.atlassian.net/browse/MM-54367). + - Adding an @mention at the start of a post draft and pressing the left or right arrow key can clear the post draft and the undo history [MM-33823](https://mattermost.atlassian.net/browse/MM-33823). + - 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. + - 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. + - The Playbooks left-hand sidebar doesn't update when a user is added to a run or playbook without a refresh. + - If a user isn't a member of a configured broadcast channel, posting a status update might fail without any error feedback. As a temporary workaround, join the configured broadcast channels, or remove those channels from the run configuration. + - The Playbooks left-hand sidebar does not update when a user is added to a run or playbook without a refresh. + +### Contributors + - [abhinav700](https://github.com/abhinav700), [agarciamontoro](https://github.com/agarciamontoro), [agnivade](https://github.com/agnivade), [alexdecamillo](https://github.com/alexdecamillo), [amyblais](https://github.com/amyblais), [andrleite](https://github.com/andrleite), [angeloskyratzakos](https://github.com/angeloskyratzakos), [asaadmahmood](https://github.com/asaadmahmood), [AsisRout](https://github.com/AsisRout), [ayusht2810](https://github.com/ayusht2810), [azigler](https://github.com/azigler), [BenCookie95](https://github.com/BenCookie95), [calebroseland](https://github.com/calebroseland), [cedarice](https://translate.mattermost.com/user/cedarice), [coltoneshaw](https://github.com/coltoneshaw), [cpoile](https://github.com/cpoile), [Crere89](https://translate.mattermost.com/user/Crere89), [crspeller](https://github.com/crspeller), [ctlaltdieliet](https://translate.mattermost.com/user/ctlaltdieliet), [cwarnermm](https://github.com/cwarnermm), [deivisonrpg](https://github.com/deivisonrpg), [devinbinnie](https://github.com/devinbinnie), [djanda97](https://github.com/djanda97), [Eleferen](https://translate.mattermost.com/user/Eleferen), [emdecr](https://github.com/emdecr), [enahum](https://github.com/enahum), [esethna](https://github.com/esethna), [fmartingr](https://github.com/fmartingr), [FokinAleksandr](https://github.com/FokinAleksandr), [gabrieljackson](https://github.com/gabrieljackson), [hanzei](https://github.com/hanzei), [harshilsharma63](https://github.com/harshilsharma63), [hibou.sage](https://translate.mattermost.com/user/hibou.sage), [hmhealey](https://github.com/hmhealey), [homerCOD](https://translate.mattermost.com/user/homerCOD), [ialorro](https://github.com/ialorro), [ifoukarakis](https://github.com/ifoukarakis), [intdev32](https://github.com/intdev32), [IronOnet](https://github.com/IronOnet), [isacikgoz](https://github.com/isacikgoz), [jasonblais](https://github.com/jasonblais), [jespino](https://github.com/jespino), [johnsonbrothers](https://github.com/johnsonbrothers), [jprusch](https://github.com/jprusch), [kaakaa](https://github.com/kaakaa), [kayazeren](https://github.com/kayazeren), [Kshitij-Katiyar](https://github.com/Kshitij-Katiyar), [kyeongsoosoo](https://github.com/kyeongsoosoo), [larkox](https://github.com/larkox), [lieut-data](https://github.com/lieut-data), [LimJiAn](https://github.com/LimJiAn), [limod](https://github.com/limod), [linkvn](https://github.com/linkvn), [M-ZubairAhmed](https://github.com/M-ZubairAhmed), [majo](https://translate.mattermost.com/user/majo), [manojmalik20](https://github.com/manojmalik20), [marie0394](https://translate.mattermost.com/user/marie0394), [maruTA-bis5](https://github.com/maruTA-bis5), [master7](https://translate.mattermost.com/user/master7), [matt-w99](https://github.com/matt-w99), [matthew-w](https://translate.mattermost.com/user/matthew-w), [matthewbirtch](https://github.com/matthewbirtch), [mickmister](https://github.com/mickmister), [milotype](https://translate.mattermost.com/user/milotype), [MohammedElansary-dev](https://translate.mattermost.com/user/MohammedElansary-dev), [mornaistar](https://github.com/mornaistar), [mt26691](https://translate.mattermost.com/user/mt26691), [mvitale1989](https://github.com/mvitale1989), [Navystack](https://translate.mattermost.com/user/Navystack), [nickmisasi](https://github.com/nickmisasi), [pvev](https://github.com/pvev), [RayYH](https://github.com/RayYH), [saturninoabril](https://github.com/saturninoabril), [sbishel](https://github.com/sbishel), [Sharuru](https://github.com/Sharuru), [sinansonmez](https://github.com/sinansonmez), [speedhs](https://github.com/speedhs), [sri-byte](https://github.com/sri-byte), [stafot](https://github.com/stafot), [streamer45](https://github.com/streamer45), [stylianosrigas](https://github.com/stylianosrigas), [teamzamong](https://github.com/teamzamong), [TheRealJoeFriel](https://github.com/TheRealJoeFriel), [ThrRip](https://github.com/ThrRip), [timmycheng](https://github.com/timmycheng), [toninis](https://github.com/toninis), [varghese.jose](https://github.com/varghesejose2020), [wiersgallak](https://github.com/wiersgallak), [wiggin77](https://github.com/wiggin77), [y4aniv](https://github.com/y4aniv), [yasserfaraazkhan](https://github.com/yasserfaraazkhan) + +---- + +(release-v9-0-major-release)= +## Release v9.0 - [Major Release](https://docs.mattermost.com/upgrade/release-definitions.html#major-release) + +- **9.0.5, released 2023-11-29** + - Mattermost v9.0.5 contains medium severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). + - Mattermost v9.0.5 contains no database or functional changes. + - Pre-packaged Calls plugin version [v0.21.1](https://github.com/mattermost/mattermost-plugin-calls/releases/tag/v0.21.1). +- **9.0.4, released 2023-11-13** + - Mattermost v9.0.4 contains low to high severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). + - Mattermost v9.0.4 contains no database or functional changes. + - Pre-packaged Playbooks plugin version [v1.39.1](https://github.com/mattermost/mattermost-plugin-playbooks/releases/tag/v1.39.1). + - Fixed an issue where the **About Mattermost** dialog reported an incorrect server version. +- **9.0.3, released 2023-11-06** + - Mattermost v9.0.3 contains low to high severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). + - Mattermost v9.0.3 contains no database or functional changes. +- **9.0.2, released 2023-10-27** + - Mattermost v9.0.2 contains low to medium severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). + - Pre-packaged Focalboard plugin [v7.11.4](https://github.com/mattermost/focalboard/releases/tag/v7.11.4). + - Mattermost v9.0.2 contains the following functional changes: + - Added a new configuration setting ``MaxFieldSize`` to add the ability to size-limit log fields during logging. + - Added a restriction to the mobile Oauth / SAML redirection to match the ``NativeAppSettings.AppCustomURLSchemes`` configuration setting. +- **9.0.1, released 2023-10-06** + - Mattermost v9.0.1 contains low to medium severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.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.com/security-vulnerability-report/). + - Mattermost v9.0.1 contains no database or functional changes. +- **9.0.0, released 2023-09-15** + - Original 9.0.0 release + +### Important Upgrade Notes + - Removed the deprecated Insights feature. + - Mattermost Boards and various other plugins have transitioned to being fully community supported. See this [forum post](https://forum.mattermost.com/t/upcoming-product-changes-to-boards-and-various-plugins/16669) for more details. + - The ``channel_viewed`` websocket event was changed to ``multiple_channels_viewed``, and is now only triggered for channels that actually have unread messages. + +```{Important} +If you upgrade from a release earlier than v8.1, please read the other [Important Upgrade Notes](https://docs.mattermost.com/upgrade/important-upgrade-notes.html). +``` + +### Highlights + +#### Dev/Sec/ChatOps in Strict Security Environments with Jira, Confluence, and Mattermost + - Accelerate mission-critical workflows that keep your team aligned and your data secure on [the Mattermost and Atlassian platforms](https://mattermost.com/atlassian/). + +#### Air-Gapped, Edge-Ready Generative AI with Defense Unicorn's LeapfrogAI + - Deploy and utilize local GenAI models in edge, air-gapped, and zero-trust environments with [LeapfrogAI and Mattermost](https://defenseunicorns.com/leapfrogai). + +#### AI-Accelerated Collaboration + - Mattermost partner Mobius Logic has enhanced the MS Teams Connector for the Microsoft 365 platform by embedding Mattermost directly inside [Microsoft Teams](https://docs.mattermost.com/about/mattermost-for-microsoft-teams.html). + +#### MLOps and Secure Federation with Customer Compliance + - Our partnership with SOS International (SOSi) enables the integration of advanced military-grade federation using XMPP. Read the [exoINSIGHT announcement from Exovera](https://exovera.com/press-release/exovera-unveils-exoinsight/). + +#### Improving Your Organization’s Core Collaboration + - To optimize the core platform experience, we are reinforcing the fundamentals to ensure Mattermost continues being resilient, stable, and best-in-breed for your critical operations. + +### Improvements + +#### User Interface (UI) + - The number of channel members is now shown in the **Browse channels** modal. + - An error is now displayed if a post edit history fails to load. + - Added functionality to bulk mark a whole channel category as read. + - Removed Boards product tour code. + - Replaced Gfycat with Giphy in the gif picker. + - Pre-packaged Calls version v0.19.0. + - Updated Focalboard plugin version to 7.11.3. + - Pre-packaged Playbooks version 1.38.1. + - Upgraded prepackaged Zoom plugin to v1.6.2. + - Upgraded prepackaged Antivirus plugin version to 1.0.0. + +#### Administration + - API examples are now updated to reflect latest Go API conventions, deprecating older code samples. + - Updated the public server module version to v0.0.8. + - Added a ``Post Action`` plugin hook to allow plugins to register new items in the post menu. + - Added a ``Post Editor Action`` plugin hook to allow plugins to register new items in the post editor menu. + - Improved logging on plugin initialization, activation, and removal. + - Removed the deprecated ``ManifestExecutables`` struct. + - Removed the deprecated ``UserAuth.Password`` field. + - [Remote users](https://docs.mattermost.com/onboard/shared-channels.html) are no longer counted as part of the license. + - Improved data retention logs. + - Removed ``/opengraph`` endpoint as it was unused. + - Transitionally prepackaged plugins are now installed to the filestore for continuity when a future release stops prepackaging those plugins. + - Removed the deprecated ``Manifest.RequiredConfig`` field. + - Added a ``NotificationWillBePushed`` plugin hook invoked before the push notification is processed and sent to the notification service. Plugins may modify or reject the push notification. + - Added a `SendPushNotification` plugin api method which allows plugins to send push notifications to a specific user's mobile sessions. + - Disabled ``PluginSettings.EnableRemoteMarketplace`` functionality. + +### Bug Fixes + - Fixed the error returned by ``PUT /api/v4/channels/{channelid}`` when the provided name already existed in the team. + - Fixed an issue where CRLF line endings passed to mmctl commands were not being stripped from commands. + - Fixed an issue where text copied from Microsoft OneNote is pasted as an image. + - Fixed an issue preventing successful activation of trial licenses. + - Fixed an issue where a custom group wouldn't get marked as a mention if it was not part of the webapp's local state. + - Fixed an issue with the in-product marketplace theming. + +### 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 all plans: + - Under ``ServiceSettings`` in the ``config.json``: + - Added ``GiphySdkKey`` to replace Gfycat with Giphy in the gif picker. + +### Go Version + - v9.0 is built with Go ``v1.19.5``. + +### Open Source Components + - Added ``@giphy/js-fetch-api`` and ``@giphy/react-components`` to https://github.com/mattermost/mattermost/. + - Added ``@react-native/eslint-config``, ``@react-native/metro-config``, and ``@tsconfig/react-native`` to https://github.com/mattermost/mattermost-mobile/. + +### Known Issues + - Adding an @mention at the start of a post draft and pressing the left or right arrow key can clear the post draft and the undo history [MM-33823](https://mattermost.atlassian.net/browse/MM-33823). + - 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. + - The Playbooks left-hand sidebar doesn't update when a user is added to a run or playbook without a refresh. + - If a user isn't a member of a configured broadcast channel, posting a status update might fail without any error feedback. As a temporary workaround, join the configured broadcast channels, or remove those channels from the run configuration. + - The Playbooks left-hand sidebar does not update when a user is added to a run or playbook without a refresh. + +### Contributors + - [abdulsmapara](https://github.com/abdulsmapara), [agarciamontoro](https://github.com/agarciamontoro), [agnivade](https://github.com/agnivade), [akaravashkin](https://github.com/akaravashkin), [amyblais](https://github.com/amyblais), [andrleite](https://github.com/andrleite), [angeloskyratzakos](https://github.com/angeloskyratzakos), [apollo13](https://github.com/apollo13), [aqurilla](https://github.com/aqurilla), [ayusht2810](https://github.com/ayusht2810), [azigler](https://github.com/azigler), [bbodenmiller](https://github.com/bbodenmiller), [BenCookie95](https://github.com/BenCookie95), [Benjamin-Loison](https://github.com/Benjamin-Loison), [calebroseland](https://github.com/calebroseland), [cdmwebs](https://github.com/cdmwebs), [chumano](https://github.com/chumano), [CI-YU](https://github.com/CI-YU), [Coelho](https://translate.mattermost.com/user/Coelho), [cpoile](https://github.com/cpoile), [crspeller](https://github.com/crspeller), [ctlaltdieliet](https://translate.mattermost.com/user/ctlaltdieliet), [cwarnermm](https://github.com/cwarnermm), [danielsischy](https://github.com/danielsischy), [deivisonrpg](https://github.com/deivisonrpg), [devinbinnie](https://github.com/devinbinnie), [djanda97](https://github.com/djanda97), [douglasstasiak](https://github.com/douglasstasiak), [Eleferen](https://translate.mattermost.com/user/Eleferen), [enahum](https://github.com/enahum), [esarafianou](https://github.com/esarafianou), [esethna](https://github.com/esethna), [gabrieljackson](https://github.com/gabrieljackson), [gary-sixgen](https://github.com/gary-sixgen), [Gobbit69](https://translate.mattermost.com/user/Gobbit69), [grubbins](https://github.com/grubbins), [guneshsji](https://github.com/guneshsji), [hannaparks](https://github.com/hannaparks), [hanzei](https://github.com/hanzei), [harshal2030](https://github.com/harshal2030), [harshilsharma63](https://github.com/harshilsharma63), [hmhealey](https://github.com/hmhealey), [hpkhanh1610](https://github.com/hpkhanh1610), [ifoukarakis](https://github.com/ifoukarakis), [isacikgoz](https://github.com/isacikgoz), [it33](https://github.com/it33), [ivakorin](https://github.com/ivakorin), [jasonblais](https://github.com/jasonblais), [jespino](https://github.com/jespino), [johndavidlugtu](https://github.com/johndavidlugtu), [johnsonbrothers](https://github.com/johnsonbrothers), [jprusch](https://github.com/jprusch), [JulienTant](https://github.com/JulienTant), [kaakaa](https://github.com/kaakaa), [kayazeren](https://github.com/kayazeren), [Kshitij-Katiyar](https://github.com/Kshitij-Katiyar), [kyeongsoosoo](https://github.com/kyeongsoosoo), [larkox](https://github.com/larkox), [lieut-data](https://github.com/lieut-data), [LimJiAn](https://github.com/LimJiAn), [lindalumitchell](https://github.com/lindalumitchell), [lindy65](https://github.com/lindy65), [lynn915](https://github.com/lynn915), [M-ZubairAhmed](https://github.com/M-ZubairAhmed), [mahmoudfarouq](https://github.com/mahmoudfarouq), [majo](https://translate.mattermost.com/user/majo), [manojmalik20](https://github.com/manojmalik20), [marianunez](https://github.com/marianunez), [maruTA-bis5](https://translate.mattermost.com/user/maruTA-bis5), [master7](https://translate.mattermost.com/user/master7), [matt-w99](https://github.com/matt-w99), [matthew-w](https://translate.mattermost.com/user/matthew-w), [matthewbirtch](https://github.com/matthewbirtch), [MatthewDorner](https://github.com/MatthewDorner), [mgdelacroix](https://github.com/mgdelacroix), [mickmister](https://github.com/mickmister), [milotype](https://translate.mattermost.com/user/milotype), [mvitale1989](https://github.com/mvitale1989), [nickmisasi](https://github.com/nickmisasi), [panoramix360](https://github.com/panoramix360), [Partizann](https://github.com/Partizann), [penghao_chn](https://translate.mattermost.com/user/penghao_chn), [phoinixgrr](https://github.com/phoinixgrr), [pjenicot](https://translate.mattermost.com/user/pjenicot), [pvev](https://github.com/pvev), [raghavaggarwal2308](https://github.com/raghavaggarwal2308), [RichardScottOZ](https://github.com/RichardScottOZ), [robinsdm](https://github.com/robinsdm), [saturninoabril](https://github.com/saturninoabril), [sbishel](https://github.com/sbishel), [Sharuru](https://github.com/Sharuru), [ShrootBuck](https://github.com/ShrootBuck), [sinansonmez](https://github.com/sinansonmez), [sri-byte](https://github.com/sri-byte), [stafot](https://github.com/stafot), [StreakInTheSky](https://github.com/StreakInTheSky), [streamer45](https://github.com/streamer45), [stylianosrigas](https://github.com/stylianosrigas), [svelle](https://github.com/svelle), [tasawar-hussain](https://github.com/tasawar-hussain), [TealWater](https://github.com/TealWater), [thinkGeist](https://github.com/thinkGeist), [ThrRip](https://translate.mattermost.com/user/ThrRip), [timmycheng](https://translate.mattermost.com/user/timmycheng), [toninis](https://github.com/toninis), [tschuyebuhl](https://github.com/tschuyebuhl), [wiggin77](https://github.com/wiggin77), [Willyfrog](https://github.com/Willyfrog), [y4aniv](https://translate.mattermost.com/user/y4aniv), [yash2189](https://github.com/yash2189), [yasserfaraazkhan](https://github.com/yasserfaraazkhan), [yomiadetutu1](https://github.com/yomiadetutu1), [ZubairImtiaz3](https://github.com/ZubairImtiaz3) + (release-v8-1-extended-support-release)= ## Release v8.1 - [Extended Support Release](https://docs.mattermost.com/upgrade/release-definitions.html#extended-support-release-esr) diff --git a/source/product-overview/version-archive.rst b/source/product-overview/version-archive.rst index 073441f8fa6..a33910a96a7 100644 --- a/source/product-overview/version-archive.rst +++ b/source/product-overview/version-archive.rst @@ -44,11 +44,11 @@ If you want to check that the version of Mattermost you are installing is the of - SHA-256 Checksum: ``c763ba7d25b42051d8ff6b3de18cf9ec312d4e5d985f754a37c29f86988cb93b`` - GPG Signature: https://releases.mattermost.com/10.6.6/mattermost-10.6.6-linux-amd64.tar.gz.sig - SBOM Download Link: https://releases.mattermost.com/10.6.6/sbom-enterprise-v10.6.6.json - Mattermost Enterprise Edition v10.5.10 *Extended Support Release (ESR)* - `View Changelog `__ - `Download `__ - - ``https://releases.mattermost.com/10.5.10/mattermost-10.5.10-linux-amd64.tar.gz`` - - SHA-256 Checksum: ``ba8fb5dbda927feed0671b4f673de58b5be707158ad6e808cf7ee4cff8d212b8`` - - GPG Signature: https://releases.mattermost.com/10.5.10/mattermost-10.5.10-linux-amd64.tar.gz.sig - - SBOM Download Link: https://releases.mattermost.com/10.5.10/sbom-enterprise-v10.5.10.json + Mattermost Enterprise Edition v10.5.11 *Extended Support Release (ESR)* - `View Changelog `__ - `Download `__ + - ``https://releases.mattermost.com/10.5.11/mattermost-10.5.11-linux-amd64.tar.gz`` + - SHA-256 Checksum: ``d77e136fb45352c49969bd7418899f9ddbc8daf73f297bfa4b7bc9ad2f9a8b0d`` + - GPG Signature: https://releases.mattermost.com/10.5.11/mattermost-10.5.11-linux-amd64.tar.gz.sig + - SBOM Download Link: https://releases.mattermost.com/10.5.11/sbom-enterprise-v10.5.11.json Mattermost Enterprise Edition v10.4.5 - `View Changelog `__ - `Download `__ - ``https://releases.mattermost.com/10.4.5/mattermost-10.4.5-linux-amd64.tar.gz`` - SHA-256 Checksum: ``f85f4cf564f940f82a37c17a94f8689dda9c0e79c58a204c7d175c9ecb620773`` @@ -472,11 +472,11 @@ If you want to check that the version of Mattermost you are installing is the of - SHA-256 Checksum: ``c829f301d3fc2fdd6061454a3ea3aa4f26d398340398a736c3402bd5eeb345f9`` - GPG Signature: https://releases.mattermost.com/10.6.6/mattermost-team-10.6.6-linux-amd64.tar.gz.sig - SBOM Download Link: https://github.com/mattermost/mattermost/releases/download/v10.6.6/sbom-mattermost-v10.6.6.json - Mattermost Team Edition v10.5.10 *Extended Support Release (ESR)* - `View Changelog `__ - `Download `__ - - ``https://releases.mattermost.com/10.5.10/mattermost-team-10.5.10-linux-amd64.tar.gz`` - - SHA-256 Checksum: ``ee8ce0bdfc0a5cb27b7d87922f6c9fced41063f62f57c847d21b2cbedd6a19e1`` - - GPG Signature: https://releases.mattermost.com/10.5.10/mattermost-team-10.5.10-linux-amd64.tar.gz.sig - - SBOM Download Link: https://github.com/mattermost/mattermost/releases/download/v10.5.10/sbom-mattermost-v10.5.10.json + Mattermost Team Edition v10.5.11 *Extended Support Release (ESR)* - `View Changelog `__ - `Download `__ + - ``https://releases.mattermost.com/10.5.11/mattermost-team-10.5.11-linux-amd64.tar.gz`` + - SHA-256 Checksum: ``0c4b44036902dfe6a89dea08a55e57feb00ad9d76011d2aa7fc4a9fe2a0c6f7c`` + - GPG Signature: https://releases.mattermost.com/10.5.11/mattermost-team-10.5.11-linux-amd64.tar.gz.sig + - SBOM Download Link: https://github.com/mattermost/mattermost/releases/download/v10.5.11/sbom-mattermost-v10.5.11.json Mattermost Team Edition v10.4.5 - `View Changelog `__ - `Download `__ - ``https://releases.mattermost.com/10.4.5/mattermost-team-10.4.5-linux-amd64.tar.gz`` - SHA-256 Checksum: ``31edebbc416c8978a81f40cffe7ed98f9b39f8a1f695b18bdf98dddc9edb650c`` diff --git a/source/redirects.py b/source/redirects.py index 7df05a6afa6..101d7a4d5aa 100644 --- a/source/redirects.py +++ b/source/redirects.py @@ -81,7 +81,7 @@ "about/faq-notifications.html": "https://docs.mattermost.com/end-user-guide/preferences/troubleshoot-notifications#frequently-asked-questions.html", "about/faq-product.html": - "https://docs.mattermost.com/product-overview/client-availability.html", + "https://docs.mattermost.com/end-user-guide/collaborate/client-availability.html", "about/faq-use-cases.html": "https://docs.mattermost.com/product-overview/faq-use-cases.html", "about/faq-video-audio-screensharing.html": @@ -941,14 +941,10 @@ "https://docs.mattermost.com/administration-guide/configure/configuration-settings.html", "configure/compliance-configuration-settings.html": "https://docs.mattermost.com/administration-guide/configure/compliance-configuration-settings.html", -"configure/config-proxy-apache2.html": - "https://docs.mattermost.com/administration-guide/configure/config-proxy-apache2.html", "configure/config-ssl-http2-apache2.html": "https://forum.mattermost.com/t/configuring-apache2-with-ssl-and-http-2/11939", "configure/configuration-in-your-database.html": "https://docs.mattermost.com/administration-guide/configure/configuration-in-your-database.html", -"configure/configuring-apache2.html": - "https://forum.mattermost.com/t/configuring-apache2-as-a-proxy-for-mattermost-server/11938", "configure/custom-branding-tools.html": "https://docs.mattermost.com/administration-guide/configure/custom-branding-tools.html", "configure/customize-mattermost.html": @@ -2653,8 +2649,6 @@ "https://docs.mattermost.com/deployment-guide/server/deploy-linux.html", "install/enterprise-install-upgrade.html": "https://docs.mattermost.com/administration-guide/upgrade/enterprise-install-upgrade.html", -"install/config-apache2.html": - "https://forum.mattermost.com/t/configuring-apache2-as-a-proxy-for-mattermost-server/11938", "install/desktop.html": "https://docs.mattermost.com/end-user-guide/collaborate/install-desktop-app.html", "install/desktop-managed-resources.html": @@ -3955,6 +3949,11 @@ "process/working-at-mattermost.html": "https://handbook.mattermost.com/operations/workplace/people/working-at-mattermost/onboarding/engineer-onboarding", +"product-overview/faq-business.html": + "https://docs.mattermost.com/product-overview/faq-license.html", +"product-overview/mattermost-v9-changelog.html": + "https://docs.mattermost.com/product-overview/unsupported-legacy-releases.html", + # Preferences redirects "preferences/connect-multiple-workspaces.html": "https://docs.mattermost.com/end-user-guide/preferences/connect-multiple-workspaces.html", diff --git a/source/use-case-guide/maximize-microsoft-investments.rst b/source/use-case-guide/maximize-microsoft-investments.rst index bf089cdb62a..08312dc8fa1 100644 --- a/source/use-case-guide/maximize-microsoft-investments.rst +++ b/source/use-case-guide/maximize-microsoft-investments.rst @@ -29,7 +29,7 @@ As Skype for Business reaches end-of-life, secure organizations require an alter - **Preserve mission-critical communication workflows** with a self-hosted Mattermost deployment that supports :doc:`1:1 calls `, :ref:`screen sharing `, and :doc:`threaded messaging ` within secure environments. - **Integrate Mattermost with Microsoft tools** such as Outlook, Teams, and :doc:`Entra ID Single Sign-On
` to retain user workflows while centralizing identity and access control. See :doc:`Mattermost for M365, Teams, and Outlook `. -- **Deploy in sovereign, air-gapped, or private cloud environments** such as `Azure Deployment `_ while maintaining compliance with STIG, FedRAMP, and NIST 800-53 standards. +- **Deploy in sovereign, air-gapped, or private cloud environments** such as `Azure Deployment `_ or **Azure Local** (formerly Azure Stack HCI) for on-premises hybrid cloud scenarios while maintaining compliance with STIG, FedRAMP, and NIST 800-53 standards. For Azure Local deployments, we recommend engaging **Mattermost Professional Services** for deployment support. `Talk to an Expert `_ to learn more. :doc:`Learn more ` about replacing Skype for Business with Mattermost. diff --git a/source/use-case-guide/on-prem-skype-for-business-replacement.rst b/source/use-case-guide/on-prem-skype-for-business-replacement.rst index 918bbfc59df..c663100e9af 100644 --- a/source/use-case-guide/on-prem-skype-for-business-replacement.rst +++ b/source/use-case-guide/on-prem-skype-for-business-replacement.rst @@ -19,7 +19,7 @@ Organizations operating in fully disconnected or classified environments require - **Ensure secure communication in fully disconnected networks** using Mattermost's support for private on-premise deployments, including FIPS 140-3 validated and DISA STIG-hardened container images. :doc:`Learn more ` about Mattermost's architecture, components, and backend infrastructure. - **Maintain operational continuity** with enterprise-grade :doc:`channel-based collaboration `— including :doc:`1:1 audio calls `, :ref:`screen sharing `, :doc:`threaded messaging `, and :doc:`file sharing `—entirely within air-gapped systems. - **Scale to mission requirements** with a :doc:`high-availability, horizontally scalable architecture ` that supports tens of thousands of users in secure on-prem environments. -- **Preserve data sovereignty and eliminate external dependencies** with a self-hosted :doc:`Kubernetes deployment model ` that integrates into classified networks or sovereign data centers. +- **Preserve data sovereignty and eliminate external dependencies** with a self-hosted :doc:`Kubernetes deployment model ` that integrates into classified networks, sovereign data centers, or **Azure Local** (formerly Azure Stack HCI) for hybrid cloud on-premises scenarios. Modernize Secure Collaboration Workflows ------------------------------------------ @@ -52,5 +52,6 @@ Collaborating across organizational boundaries must not compromise compliance or Get Started ----------- -`Talk to an Expert `_ to learn more about transitioning from Skype for Business to a secure, modern collaboration platform built for mission-critical environments. With Mattermost, your organization gains a self-hosted, scalable, and compliant solution tailored for classified operations, secure external engagement, and operational modernization. +With Mattermost, your organization gains a self-hosted, scalable, and compliant solution tailored for classified operations, secure external engagement, and operational modernization. +`Talk to an Expert `_ to learn more about transitioning from Skype for Business to a secure, modern collaboration platform built for mission-critical environments, or to discuss your Azure Local deployment needs. Organizations deploying Mattermost on Azure Local (formerly Azure Stack HCI) for on-premises hybrid cloud scenarios can engage **Mattermost Professional Services** for deployment support to ensure optimal configuration and compliance with your security requirements. \ No newline at end of file