From 74538533b9347f7ab28517e822fe0b7155588a23 Mon Sep 17 00:00:00 2001 From: Changelog Bot Date: Wed, 17 Jun 2026 10:44:36 +0000 Subject: [PATCH 01/50] docs: add changelog for v11.9.0 --- .../mattermost-v11-changelog.md | 118 ++++++++++++++++++ 1 file changed, 118 insertions(+) diff --git a/source/product-overview/mattermost-v11-changelog.md b/source/product-overview/mattermost-v11-changelog.md index e1e6ee61a6d..f59bce53b4c 100644 --- a/source/product-overview/mattermost-v11-changelog.md +++ b/source/product-overview/mattermost-v11-changelog.md @@ -13,6 +13,124 @@ Platform and OS scope reflects reported and tested environments and may not represent all affected configurations. ``` + +(release-v11.9)= +## Release v11.9 + +**Release day: 2026-07-16** + +### Upgrade Impact +#### Database Schema Changes + - Added a new ``ExpiresAt`` column to the ``UserAccessTokens`` table. + - Added a new column ``board`` type to channel bookmarks, including a nontransactional concurrent index migration on Postgres. + +#### 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 ``FileSettings`` in ``config.json``, added ``AzureCloud`` configuration setting to select the Azure cloud environment for Blob Storage. + - Under ``FileSettings`` in ``config.json``, added ``ExportAzureCloud`` configuration setting to select the Azure cloud environment for Export Storage. + - Under ``FileSettings`` in ``config.json``, added ``AzureAuthMode`` configuration setting to select the authentication mode for Azure Blob Storage. + - Under ``FileSettings`` in ``config.json``, added ``ExportAzureAuthMode`` configuration setting to select the authentication mode for Azure Export Blob Storage. + - Under ``FileSettings`` in ``config.json``, added ``ExportAzurePresignExpiresSeconds`` configuration setting to control the Shared Access Signature lifetime for Azure export direct downloads (defaults to 6 hours, capped at Azure's 7-day limit). + - Under ``FileSettings`` in ``config.json``, added ``ExtractContentTimeout`` configuration setting to limit how long a single uploaded document's content extraction occupies a worker (default 10 seconds). + - Under ``ServiceSettings`` in ``config.json``, added ``MaximumPersonalAccessTokenLifetimeDays`` configuration setting to require personal access tokens to expire within a configured maximum lifetime (``0`` imposes no policy). + - Under ``AccessControlSettings`` in ``config.json``, added ``EnforceDeviceIDConsistency`` configuration setting to enforce device ID consistency across sessions. + - Under ``AccessControlSettings`` in ``config.json``, added ``TrustProxyDeviceIdentityHeader`` configuration setting to trust a proxy-supplied device identity header for session attribute collection. + +### Improvements +See [this blog post](https://mattermost.com/blog/mattermost-v11-9-0-is-now-available/) on the highlights in our latest release. +#### User Interface + - Added zoom and pan support to the image file preview: use the scroll wheel to zoom at the cursor, click-and-drag to pan, and +/-/0 keyboard shortcuts. + - Added a license preview and diff view when uploading a new license in the System Console, allowing administrators to compare the new license's features with the current license before applying. + - Added a toast notification for plugin-rejected file uploads, consistent with the existing notification for rejected downloads. + - Added a Data Spillage Handling feature discovery page in the System Console for lower-tier licenses. + - Added clearer validation messaging for invalid user attribute names in the System Console. + - Incoming webhooks now show information about the last time they were triggered. + - Threads started by a webhook are no longer highlighted for the user who owns the webhook. + - Added user setting "Auto-follow threads on channel-wide mentions" (Settings → Notifications). When disabled, @channel/@all/@here mentions no longer force thread membership; users still receive mention notifications but must manually follow the thread. + - Added a webapp hook ``registerChannelTypeOption``. + - Hardened the web app against crashes caused by components rendered by a plugin. + +#### Plugins/Integrations + - Implemented clickable action buttons inside post markdown for bots, webhooks, and plugins. Integrations bind ``mmaction://`` markdown links to actions defined in a new ``mm_blocks_actions`` post property. + - Added channel bookmark type ``board`` with an optional ``target_id``. The bookmarks API rejects creating, updating, or deleting board bookmarks but allows reordering them when the caller has bookmark order permission. + +#### Administration + - Added Azure Blob Storage as a selectable backend in the File Storage and Export Storage admin console panels. The S3 Test Connection control is now backend-agnostic and validates the active driver. + - Added an Azure Cloud selector to the Azure Blob Storage admin panels with built-in support for Azure Commercial and Azure Government endpoints. Choose "Custom Endpoint" to point at Azurite, a reverse proxy, or any other Azure cloud by providing the full Blob service URL. + - Added a Microsoft Entra ID / DefaultAzureCredential authentication mode to the Azure Blob Storage admin panels alongside the existing shared-key path. Select "Default credential (Microsoft Entra ID)" to authenticate via managed identity, workload identity, service principal environment variables, or ``az login`` — whichever the host environment provides — with no access key required. + - Added Azure Blob Storage support for the optional presigned export-download feature (``EnableExportDirectDownload``). Bulk-export downloads now generate a time-limited Shared Access Signature when the export backend is Azure, matching the existing S3 behavior. + - Added validation of the Azure file storage account name and routed Azure custom-endpoint requests through the standard outbound HTTP transport. + - Added SAML connectivity status and error diagnostics to support packet output. + - Added OAuth2/OpenID Connect provider connectivity status (GitLab, Google, Office365, OpenID) to the support packet diagnostics. + - Added database diagnostics to the support packet, covering connection pool stats on every supported driver and PostgreSQL aggregate performance indicators (cache hit ratio, deadlocks, temp files, lock wait/idle activity, longest running query, and Posts autovacuum/dead tuples). + - Added personal access token expiry support. Tokens can now be required to expire within a configured maximum lifetime via the new ``ServiceSettings.MaximumPersonalAccessTokenLifetimeDays`` System Console setting. The policy applies only to newly created tokens; bot tokens are exempt. + - Added an ``ExpiresAt`` column to the ``UserAccessTokens`` table; expired personal access tokens are rejected with HTTP 401 and reaped hourly by a new background job (``cleanup_expired_access_tokens``). + - Added a pre-migration setup to fix incorrect database migration numbers that prevented upgrading Mattermost from v10.11 to v11.7. + - Added a new ``FileSettings.ExtractContentTimeout`` setting (default 10 seconds) that limits how long a single uploaded document's content extraction occupies a worker, and moved document content extraction to a dedicated, non-blocking worker pool so it no longer delays file uploads for other users. + - Stopped logging the email subject in the "sending mail" server log to prevent potential exposure of PII such as sender names from DM and mention notifications. + - Enabled CJK (Chinese, Japanese, Korean) search by default for PostgreSQL. + - Added support for OpenSearch v3, while continuing to support OpenSearch v2. + - User attributes can now be synced with AD/LDAP or SAML whether they are user-editable or admin-managed. When an attribute is synced, the "Editable by users" toggle is disabled; remove the sync link to change it again. + - Added support for iOS Calls ring for DM/GM channels. + - Expanded session attribute collection to include values provided by Desktop App and Mobile clients. + - Removed legacy interactive dialog code path. + +#### mmctl + - Added a ``mattermost db ping`` subcommand that waits for the database to become reachable, with configurable ``--timeout`` and ``--retry-interval`` flags. + - Added an ``--expires-in`` flag (e.g. ``--expires-in 90d``) to ``mmctl user token generate`` for creating expiring personal access tokens via CLI. + +#### Performance + - Improved the performance of concurrent logins by removing a global mutex in favor of database serialization for computing login attempts. This also corrects the semantics of the ``MaximumLoginAttempts`` setting, which is now honored across all nodes in the cluster: instead of allowing ``n*MaximumLoginAttempts`` attempts (where ``n`` is the number of nodes), exactly ``MaximumLoginAttempts`` attempts are now allowed regardless of cluster size. + - Reduced cluster send error logs from oversized ``plugin_statuses_changed`` WebSocket events. + +### Bug Fixes + - Fixed display of long usernames in the user account menu. + - Fixed a white flash that appeared in the global header and left sidebar when switching between products (Playbooks/Boards) and Channels. + - Fixed an issue where the AI actions toolbar separator was shown when no AI actions button was available. + - Fixed an issue where the Incoming Webhooks list reordered entries between page navigations. + - Fixed a JavaScript error when reviewers received content review updates for permanently removed flagged posts. + - Fixed an issue where the Global Threads view showed only 1 quick reaction emoji in the post hover toolbar instead of 3. + - Fixed IPv6 addresses containing hex segments (e.g. ``:beef:``) being incorrectly rendered as custom emoji in the web app. + - Fixed a bulk-import failure ("ChannelMember not found") when a group-channel hash already existed but its membership was incomplete — for example with concurrent import workers, a prior import that crashed mid-loop, or a pre-existing group channel whose membership had drifted. + - Fixed an issue where the content review bot DM displayed an empty ``""`` block under "With comment" when the reporter or reviewer did not enter a comment. + - Fixed incorrect encoding of image URLs containing query parameters when using an image proxy. + - Fixed an issue where the SAML metadata endpoint did not correctly pull the IDP public certificate. + - Fixed an issue where selecting a new role for a team or channel linked to a group in the System Console would not update the role dropdown in the user interface. + - Fixed an issue where importing direct or group message channels without scheme flags in the payload (notably from mmetl Slack exports) produced channel members with no effective role, breaking the message input for those channels on the web client. + - Fixed the Membership Policies row action Edit option to open the membership policy editor. + - Fixed the onboarding checklist button positioning when a bottom classification banner is visible. + - Fixed a regression that made the Integrations and Custom Emoji pages illegible when using a dark theme. + - Fixed an issue where the Role and Permissions column values in the System Console Permission Policies (and Membership Policies) list ran together without a separator and were truncated mid-word instead of showing an ellipsis. + - Fixed an issue where a channel member removed by an attribute-based access control (ABAC) access-rule change could still appear in the Channel Info Members list until a full page reload, even though the member count was correct. + - Fixed an issue where "Mark as Unread" from the channel sidebar did nothing when the most recent message in the channel was a system join/leave message. + - Fixed an issue where channel admins saw "Failed to load this channel's permission policy" on the Permissions Policy tab when the channel had no access control policy configured. + - Fixed custom emoji upload size and GIF frame limits. + - Fixed file moves and copies on S3 file stores failing for files larger than 5 GiB (for example, finalizing an ``mmctl`` import upload of an import archive over 5 GiB) by using a server-side multipart copy. + - Fixed an issue where a bot user created by a plugin could become the first system admin on a fresh install. + - Fixed an issue where a custom classification selection was lost if a user selected a preset from the classification preset options. + - Fixed validation for ``PUT /api/v4/users/{user_id}/auth`` to reject unknown auth services and prevent auth data on email/password users. + +### API Changes + - Added ``POST /file/test`` (``testFileStore``) API endpoint for backend-agnostic file store connection testing. + - Removed ``POST /file/s3_test`` (``testS3``) API endpoint. + - Added ``GET /access_control/policy`` (``getTeamAccessControlPolicy``) API endpoint. + - Added ``GET /sessions/attributes/manifest`` (``getSessionAttributesManifest``) API endpoint. + - The ``POST /users/{id}/tokens`` endpoint now accepts a client-supplied ``expires_at`` (Unix milliseconds) for creating expiring personal access tokens. + +### Audit Log Event Changes + - Added ``AuditEventRejectExpiredUserAccessToken`` audit log event, emitted when an expired personal access token is rejected. + - Added ``expireUserAccessToken`` audit log event, emitted when expired personal access tokens are reaped by the background cleanup job. + +### Go Version + - Go version is the same as in the previous release. + +### Open Source Components + - Upgraded ``github.com/bep/imagemeta`` from v0.12.0 to v0.17.2 in https://github.com/mattermost/mattermost/. + + (release-v11.8-feature-release)= ## Release v11.8 - [Feature Release](https://docs.mattermost.com/product-overview/release-policy.html#release-types) From 7e16f14bf87e9472309d9afdd7c18f50ebef3d98 Mon Sep 17 00:00:00 2001 From: Amy Blais <29708087+amyblais@users.noreply.github.com> Date: Wed, 17 Jun 2026 14:04:41 +0300 Subject: [PATCH 02/50] Update mattermost-v11-changelog.md --- .../mattermost-v11-changelog.md | 20 +++++++------------ 1 file changed, 7 insertions(+), 13 deletions(-) diff --git a/source/product-overview/mattermost-v11-changelog.md b/source/product-overview/mattermost-v11-changelog.md index f59bce53b4c..dc018a2cb14 100644 --- a/source/product-overview/mattermost-v11-changelog.md +++ b/source/product-overview/mattermost-v11-changelog.md @@ -13,21 +13,17 @@ Platform and OS scope reflects reported and tested environments and may not represent all affected configurations. ``` - -(release-v11.9)= -## Release v11.9 +(release-v11.9-feature-release)= +## Release v11.9 - [Feature Release](https://docs.mattermost.com/product-overview/release-policy.html#release-types) **Release day: 2026-07-16** ### Upgrade Impact #### Database Schema Changes - - Added a new ``ExpiresAt`` column to the ``UserAccessTokens`` table. - - Added a new column ``board`` type to channel bookmarks, including a nontransactional concurrent index migration on Postgres. + - #### 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 ``FileSettings`` in ``config.json``, added ``AzureCloud`` configuration setting to select the Azure cloud environment for Blob Storage. - Under ``FileSettings`` in ``config.json``, added ``ExportAzureCloud`` configuration setting to select the Azure cloud environment for Export Storage. @@ -41,6 +37,7 @@ New setting options were added to ``config.json``. Below is a list of the additi ### Improvements See [this blog post](https://mattermost.com/blog/mattermost-v11-9-0-is-now-available/) on the highlights in our latest release. + #### User Interface - Added zoom and pan support to the image file preview: use the scroll wheel to zoom at the cursor, click-and-drag to pan, and +/-/0 keyboard shortcuts. - Added a license preview and diff view when uploading a new license in the System Console, allowing administrators to compare the new license's features with the current license before applying. @@ -74,9 +71,10 @@ See [this blog post](https://mattermost.com/blog/mattermost-v11-9-0-is-now-avail - Enabled CJK (Chinese, Japanese, Korean) search by default for PostgreSQL. - Added support for OpenSearch v3, while continuing to support OpenSearch v2. - User attributes can now be synced with AD/LDAP or SAML whether they are user-editable or admin-managed. When an attribute is synced, the "Editable by users" toggle is disabled; remove the sync link to change it again. - - Added support for iOS Calls ring for DM/GM channels. + - Added support for iOS Calls ring for Direct/Group Message channels. - Expanded session attribute collection to include values provided by Desktop App and Mobile clients. - Removed legacy interactive dialog code path. + - Added a new column ``board`` type to channel bookmarks, including a nontransactional concurrent index migration on Postgres. #### mmctl - Added a ``mattermost db ping`` subcommand that waits for the database to become reachable, with configurable ``--timeout`` and ``--retry-interval`` flags. @@ -125,11 +123,7 @@ See [this blog post](https://mattermost.com/blog/mattermost-v11-9-0-is-now-avail - Added ``expireUserAccessToken`` audit log event, emitted when expired personal access tokens are reaped by the background cleanup job. ### Go Version - - Go version is the same as in the previous release. - -### Open Source Components - - Upgraded ``github.com/bep/imagemeta`` from v0.12.0 to v0.17.2 in https://github.com/mattermost/mattermost/. - + - v11.9 is built with Go ``v1.26.3``. (release-v11.8-feature-release)= ## Release v11.8 - [Feature Release](https://docs.mattermost.com/product-overview/release-policy.html#release-types) From 7a1f4c24d0fe9eab85ac0507bc598ec8667dd73f Mon Sep 17 00:00:00 2001 From: Amy Blais <29708087+amyblais@users.noreply.github.com> Date: Wed, 17 Jun 2026 14:49:29 +0300 Subject: [PATCH 03/50] Update mattermost-v11-changelog.md --- source/product-overview/mattermost-v11-changelog.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/source/product-overview/mattermost-v11-changelog.md b/source/product-overview/mattermost-v11-changelog.md index dc018a2cb14..f025ed36441 100644 --- a/source/product-overview/mattermost-v11-changelog.md +++ b/source/product-overview/mattermost-v11-changelog.md @@ -62,7 +62,7 @@ See [this blog post](https://mattermost.com/blog/mattermost-v11-9-0-is-now-avail - Added validation of the Azure file storage account name and routed Azure custom-endpoint requests through the standard outbound HTTP transport. - Added SAML connectivity status and error diagnostics to support packet output. - Added OAuth2/OpenID Connect provider connectivity status (GitLab, Google, Office365, OpenID) to the support packet diagnostics. - - Added database diagnostics to the support packet, covering connection pool stats on every supported driver and PostgreSQL aggregate performance indicators (cache hit ratio, deadlocks, temp files, lock wait/idle activity, longest running query, and Posts autovacuum/dead tuples). + - Added database diagnostics to the support packet, covering connection pool stats on every supported driver and PostgreSQL aggregate performance indicators (cache hit ratio, deadlocks, temp files, lock wait/idle activity, longest running query, and Posts autovacuum/dead tuples). Per-query timeouts and partial-failure handling keep packet generation resilient when individual pg_stat queries fail. - Added personal access token expiry support. Tokens can now be required to expire within a configured maximum lifetime via the new ``ServiceSettings.MaximumPersonalAccessTokenLifetimeDays`` System Console setting. The policy applies only to newly created tokens; bot tokens are exempt. - Added an ``ExpiresAt`` column to the ``UserAccessTokens`` table; expired personal access tokens are rejected with HTTP 401 and reaped hourly by a new background job (``cleanup_expired_access_tokens``). - Added a pre-migration setup to fix incorrect database migration numbers that prevented upgrading Mattermost from v10.11 to v11.7. @@ -75,6 +75,8 @@ See [this blog post](https://mattermost.com/blog/mattermost-v11-9-0-is-now-avail - Expanded session attribute collection to include values provided by Desktop App and Mobile clients. - Removed legacy interactive dialog code path. - Added a new column ``board`` type to channel bookmarks, including a nontransactional concurrent index migration on Postgres. + - Preserved unknown permissions during migrations on downgrade. + - Added a channel-guard enforcement for scheduled posts and drafts. #### mmctl - Added a ``mattermost db ping`` subcommand that waits for the database to become reachable, with configurable ``--timeout`` and ``--retry-interval`` flags. @@ -110,6 +112,7 @@ See [this blog post](https://mattermost.com/blog/mattermost-v11-9-0-is-now-avail - Fixed an issue where a bot user created by a plugin could become the first system admin on a fresh install. - Fixed an issue where a custom classification selection was lost if a user selected a preset from the classification preset options. - Fixed validation for ``PUT /api/v4/users/{user_id}/auth`` to reject unknown auth services and prevent auth data on email/password users. + - Fixed an issue that caused a flagged post to continue being visible for content reviewers until a refresh after deletion. ### API Changes - Added ``POST /file/test`` (``testFileStore``) API endpoint for backend-agnostic file store connection testing. From f892e7dbe86fec68d094730ede89116a27ccdeac Mon Sep 17 00:00:00 2001 From: Amy Blais <29708087+amyblais@users.noreply.github.com> Date: Wed, 17 Jun 2026 15:00:16 +0300 Subject: [PATCH 04/50] Update mattermost-v11-changelog.md --- source/product-overview/mattermost-v11-changelog.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/source/product-overview/mattermost-v11-changelog.md b/source/product-overview/mattermost-v11-changelog.md index f025ed36441..cba9fb48578 100644 --- a/source/product-overview/mattermost-v11-changelog.md +++ b/source/product-overview/mattermost-v11-changelog.md @@ -64,7 +64,7 @@ See [this blog post](https://mattermost.com/blog/mattermost-v11-9-0-is-now-avail - Added OAuth2/OpenID Connect provider connectivity status (GitLab, Google, Office365, OpenID) to the support packet diagnostics. - Added database diagnostics to the support packet, covering connection pool stats on every supported driver and PostgreSQL aggregate performance indicators (cache hit ratio, deadlocks, temp files, lock wait/idle activity, longest running query, and Posts autovacuum/dead tuples). Per-query timeouts and partial-failure handling keep packet generation resilient when individual pg_stat queries fail. - Added personal access token expiry support. Tokens can now be required to expire within a configured maximum lifetime via the new ``ServiceSettings.MaximumPersonalAccessTokenLifetimeDays`` System Console setting. The policy applies only to newly created tokens; bot tokens are exempt. - - Added an ``ExpiresAt`` column to the ``UserAccessTokens`` table; expired personal access tokens are rejected with HTTP 401 and reaped hourly by a new background job (``cleanup_expired_access_tokens``). + - Added an ``ExpiresAt`` column to the ``UserAccessTokens`` table; expired personal access tokens are rejected with HTTP 401 and reaped hourly by a new background job (``cleanup_expired_access_tokens``). Tokens with ``ExpiresAt = 0`` remain non-expiring, preserving behavior for all pre-existing tokens. - Added a pre-migration setup to fix incorrect database migration numbers that prevented upgrading Mattermost from v10.11 to v11.7. - Added a new ``FileSettings.ExtractContentTimeout`` setting (default 10 seconds) that limits how long a single uploaded document's content extraction occupies a worker, and moved document content extraction to a dedicated, non-blocking worker pool so it no longer delays file uploads for other users. - Stopped logging the email subject in the "sending mail" server log to prevent potential exposure of PII such as sender names from DM and mention notifications. @@ -122,8 +122,7 @@ See [this blog post](https://mattermost.com/blog/mattermost-v11-9-0-is-now-avail - The ``POST /users/{id}/tokens`` endpoint now accepts a client-supplied ``expires_at`` (Unix milliseconds) for creating expiring personal access tokens. ### Audit Log Event Changes - - Added ``AuditEventRejectExpiredUserAccessToken`` audit log event, emitted when an expired personal access token is rejected. - - Added ``expireUserAccessToken`` audit log event, emitted when expired personal access tokens are reaped by the background cleanup job. + - Added ``AuditEventRejectExpiredUserAccessToken`` audit log event, emitted when an expired personal access token is rejected and reap ``expireUserAccessToken``. ### Go Version - v11.9 is built with Go ``v1.26.3``. From 7dacdc60beec7cc0cd6feb067736f212bbbebaaf Mon Sep 17 00:00:00 2001 From: Amy Blais <29708087+amyblais@users.noreply.github.com> Date: Wed, 17 Jun 2026 15:03:08 +0300 Subject: [PATCH 05/50] Update mattermost-v11-changelog.md --- source/product-overview/mattermost-v11-changelog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/product-overview/mattermost-v11-changelog.md b/source/product-overview/mattermost-v11-changelog.md index cba9fb48578..c0163e748b4 100644 --- a/source/product-overview/mattermost-v11-changelog.md +++ b/source/product-overview/mattermost-v11-changelog.md @@ -55,7 +55,7 @@ See [this blog post](https://mattermost.com/blog/mattermost-v11-9-0-is-now-avail - Added channel bookmark type ``board`` with an optional ``target_id``. The bookmarks API rejects creating, updating, or deleting board bookmarks but allows reordering them when the caller has bookmark order permission. #### Administration - - Added Azure Blob Storage as a selectable backend in the File Storage and Export Storage admin console panels. The S3 Test Connection control is now backend-agnostic and validates the active driver. + - Added [Azure Blob Storage](ocs.mattermost.com/administration-guide/configure/azure-blob-storage.html) as a selectable backend in the File Storage and Export Storage admin console panels. The S3 Test Connection control is now backend-agnostic and validates the active driver. - Added an Azure Cloud selector to the Azure Blob Storage admin panels with built-in support for Azure Commercial and Azure Government endpoints. Choose "Custom Endpoint" to point at Azurite, a reverse proxy, or any other Azure cloud by providing the full Blob service URL. - Added a Microsoft Entra ID / DefaultAzureCredential authentication mode to the Azure Blob Storage admin panels alongside the existing shared-key path. Select "Default credential (Microsoft Entra ID)" to authenticate via managed identity, workload identity, service principal environment variables, or ``az login`` — whichever the host environment provides — with no access key required. - Added Azure Blob Storage support for the optional presigned export-download feature (``EnableExportDirectDownload``). Bulk-export downloads now generate a time-limited Shared Access Signature when the export backend is Azure, matching the existing S3 behavior. From 974d6131787681c5d175b0edc96c3700b4af5168 Mon Sep 17 00:00:00 2001 From: Amy Blais <29708087+amyblais@users.noreply.github.com> Date: Wed, 17 Jun 2026 15:05:38 +0300 Subject: [PATCH 06/50] Update mattermost-v11-changelog.md --- source/product-overview/mattermost-v11-changelog.md | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/source/product-overview/mattermost-v11-changelog.md b/source/product-overview/mattermost-v11-changelog.md index c0163e748b4..a9dd613093a 100644 --- a/source/product-overview/mattermost-v11-changelog.md +++ b/source/product-overview/mattermost-v11-changelog.md @@ -25,11 +25,7 @@ Platform and OS scope reflects reported and tested environments and may not repr #### 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 ``FileSettings`` in ``config.json``, added ``AzureCloud`` configuration setting to select the Azure cloud environment for Blob Storage. - - Under ``FileSettings`` in ``config.json``, added ``ExportAzureCloud`` configuration setting to select the Azure cloud environment for Export Storage. - - Under ``FileSettings`` in ``config.json``, added ``AzureAuthMode`` configuration setting to select the authentication mode for Azure Blob Storage. - - Under ``FileSettings`` in ``config.json``, added ``ExportAzureAuthMode`` configuration setting to select the authentication mode for Azure Export Blob Storage. - - Under ``FileSettings`` in ``config.json``, added ``ExportAzurePresignExpiresSeconds`` configuration setting to control the Shared Access Signature lifetime for Azure export direct downloads (defaults to 6 hours, capped at Azure's 7-day limit). + - Under ``FileSettings`` in ``config.json``, added ``AzureCloud``, ``ExportAzureCloud``, ``AzureAuthMode``, ``ExportAzureAuthMode``, and ``ExportAzurePresignExpiresSeconds`` configuration settings for Azure Blob Storage support. - Under ``FileSettings`` in ``config.json``, added ``ExtractContentTimeout`` configuration setting to limit how long a single uploaded document's content extraction occupies a worker (default 10 seconds). - Under ``ServiceSettings`` in ``config.json``, added ``MaximumPersonalAccessTokenLifetimeDays`` configuration setting to require personal access tokens to expire within a configured maximum lifetime (``0`` imposes no policy). - Under ``AccessControlSettings`` in ``config.json``, added ``EnforceDeviceIDConsistency`` configuration setting to enforce device ID consistency across sessions. From 0d31aedc7b41828fbd2d14f03c913a1b6998571f Mon Sep 17 00:00:00 2001 From: Amy Blais <29708087+amyblais@users.noreply.github.com> Date: Wed, 17 Jun 2026 15:18:14 +0300 Subject: [PATCH 07/50] Update mattermost-v11-changelog.md --- .../mattermost-v11-changelog.md | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/source/product-overview/mattermost-v11-changelog.md b/source/product-overview/mattermost-v11-changelog.md index a9dd613093a..5462a30b3b3 100644 --- a/source/product-overview/mattermost-v11-changelog.md +++ b/source/product-overview/mattermost-v11-changelog.md @@ -26,7 +26,8 @@ Platform and OS scope reflects reported and tested environments and may not repr 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 ``FileSettings`` in ``config.json``, added ``AzureCloud``, ``ExportAzureCloud``, ``AzureAuthMode``, ``ExportAzureAuthMode``, and ``ExportAzurePresignExpiresSeconds`` configuration settings for Azure Blob Storage support. - - Under ``FileSettings`` in ``config.json``, added ``ExtractContentTimeout`` configuration setting to limit how long a single uploaded document's content extraction occupies a worker (default 10 seconds). + - Under ``FileSettings`` in ``config.json``, ad + - ded ``ExtractContentTimeout`` configuration setting to limit how long a single uploaded document's content extraction occupies a worker (default 10 seconds). - Under ``ServiceSettings`` in ``config.json``, added ``MaximumPersonalAccessTokenLifetimeDays`` configuration setting to require personal access tokens to expire within a configured maximum lifetime (``0`` imposes no policy). - Under ``AccessControlSettings`` in ``config.json``, added ``EnforceDeviceIDConsistency`` configuration setting to enforce device ID consistency across sessions. - Under ``AccessControlSettings`` in ``config.json``, added ``TrustProxyDeviceIdentityHeader`` configuration setting to trust a proxy-supplied device identity header for session attribute collection. @@ -35,7 +36,7 @@ New setting options were added to ``config.json``. Below is a list of the additi See [this blog post](https://mattermost.com/blog/mattermost-v11-9-0-is-now-available/) on the highlights in our latest release. #### User Interface - - Added zoom and pan support to the image file preview: use the scroll wheel to zoom at the cursor, click-and-drag to pan, and +/-/0 keyboard shortcuts. + - Added zoom and pan support to the image file preview: use the scroll wheel to zoom at the cursor, click-and-drag to pan, and +/-/0 keyboard shortcuts (reported on webapp). - Added a license preview and diff view when uploading a new license in the System Console, allowing administrators to compare the new license's features with the current license before applying. - Added a toast notification for plugin-rejected file uploads, consistent with the existing notification for rejected downloads. - Added a Data Spillage Handling feature discovery page in the System Console for lower-tier licenses. @@ -69,10 +70,11 @@ See [this blog post](https://mattermost.com/blog/mattermost-v11-9-0-is-now-avail - User attributes can now be synced with AD/LDAP or SAML whether they are user-editable or admin-managed. When an attribute is synced, the "Editable by users" toggle is disabled; remove the sync link to change it again. - Added support for iOS Calls ring for Direct/Group Message channels. - Expanded session attribute collection to include values provided by Desktop App and Mobile clients. - - Removed legacy interactive dialog code path. + - Removed legacy interactive dialog code path (reported on webapp). - Added a new column ``board`` type to channel bookmarks, including a nontransactional concurrent index migration on Postgres. - Preserved unknown permissions during migrations on downgrade. - Added a channel-guard enforcement for scheduled posts and drafts. + - Expanded Session Attribute collection to values provided by our Desktop App/Mobile clients. #### mmctl - Added a ``mattermost db ping`` subcommand that waits for the database to become reachable, with configurable ``--timeout`` and ``--retry-interval`` flags. @@ -88,24 +90,24 @@ See [this blog post](https://mattermost.com/blog/mattermost-v11-9-0-is-now-avail - Fixed an issue where the AI actions toolbar separator was shown when no AI actions button was available. - Fixed an issue where the Incoming Webhooks list reordered entries between page navigations. - Fixed a JavaScript error when reviewers received content review updates for permanently removed flagged posts. - - Fixed an issue where the Global Threads view showed only 1 quick reaction emoji in the post hover toolbar instead of 3. + - Fixed an issue where the Global Threads view showed only 1 quick reaction emoji in the post hover toolbar instead of 3 (reported on webapp). - Fixed IPv6 addresses containing hex segments (e.g. ``:beef:``) being incorrectly rendered as custom emoji in the web app. - Fixed a bulk-import failure ("ChannelMember not found") when a group-channel hash already existed but its membership was incomplete — for example with concurrent import workers, a prior import that crashed mid-loop, or a pre-existing group channel whose membership had drifted. - Fixed an issue where the content review bot DM displayed an empty ``""`` block under "With comment" when the reporter or reviewer did not enter a comment. - - Fixed incorrect encoding of image URLs containing query parameters when using an image proxy. + - Fixed incorrect encoding of image URLs containing query parameters when using an image proxy (reported on webapp). - Fixed an issue where the SAML metadata endpoint did not correctly pull the IDP public certificate. - Fixed an issue where selecting a new role for a team or channel linked to a group in the System Console would not update the role dropdown in the user interface. - Fixed an issue where importing direct or group message channels without scheme flags in the payload (notably from mmetl Slack exports) produced channel members with no effective role, breaking the message input for those channels on the web client. - Fixed the Membership Policies row action Edit option to open the membership policy editor. - Fixed the onboarding checklist button positioning when a bottom classification banner is visible. - - Fixed a regression that made the Integrations and Custom Emoji pages illegible when using a dark theme. + - Fixed a regression that made the Integrations and Custom Emoji pages illegible when using a dark theme (reported on webapp). - Fixed an issue where the Role and Permissions column values in the System Console Permission Policies (and Membership Policies) list ran together without a separator and were truncated mid-word instead of showing an ellipsis. - Fixed an issue where a channel member removed by an attribute-based access control (ABAC) access-rule change could still appear in the Channel Info Members list until a full page reload, even though the member count was correct. - - Fixed an issue where "Mark as Unread" from the channel sidebar did nothing when the most recent message in the channel was a system join/leave message. + - Fixed an issue where "Mark as Unread" from the channel sidebar did nothing when the most recent message in the channel was a system join/leave message (reported on MacOS / Desktop App). - Fixed an issue where channel admins saw "Failed to load this channel's permission policy" on the Permissions Policy tab when the channel had no access control policy configured. - Fixed custom emoji upload size and GIF frame limits. - Fixed file moves and copies on S3 file stores failing for files larger than 5 GiB (for example, finalizing an ``mmctl`` import upload of an import archive over 5 GiB) by using a server-side multipart copy. - - Fixed an issue where a bot user created by a plugin could become the first system admin on a fresh install. + - Fixed an issue where a bot user created by a plugin could become the first system admin on a fresh install (reported on webapp and browser). - Fixed an issue where a custom classification selection was lost if a user selected a preset from the classification preset options. - Fixed validation for ``PUT /api/v4/users/{user_id}/auth`` to reject unknown auth services and prevent auth data on email/password users. - Fixed an issue that caused a flagged post to continue being visible for content reviewers until a refresh after deletion. From 5a1cdddd880c372a817cb6a0ae3fc3b42763746f Mon Sep 17 00:00:00 2001 From: Amy Blais <29708087+amyblais@users.noreply.github.com> Date: Thu, 18 Jun 2026 16:38:02 +0300 Subject: [PATCH 08/50] Update mattermost-v11-changelog.md --- .../mattermost-v11-changelog.md | 37 ++++++++++--------- 1 file changed, 20 insertions(+), 17 deletions(-) diff --git a/source/product-overview/mattermost-v11-changelog.md b/source/product-overview/mattermost-v11-changelog.md index 5462a30b3b3..5c07988f4e1 100644 --- a/source/product-overview/mattermost-v11-changelog.md +++ b/source/product-overview/mattermost-v11-changelog.md @@ -36,6 +36,10 @@ New setting options were added to ``config.json``. Below is a list of the additi See [this blog post](https://mattermost.com/blog/mattermost-v11-9-0-is-now-available/) on the highlights in our latest release. #### User Interface + - Pre-packaged Playbooks plugin version [v2.10.0](https://github.com/mattermost/mattermost-plugin-playbooks/releases/tag/v2.10.0). + - Pre-packaged Agents plugin version [v2.4.0](https://github.com/mattermost/mattermost-plugin-agents/releases/tag/v2.4.0). + - Pre-packaged Calls plugin version [v1.12.0](https://github.com/mattermost/mattermost-plugin-calls/releases/tag/v1.12.0). + - Pre-packaged Boards plugin version [v9.3.0](https://github.com/mattermost/mattermost-plugin-boards/releases/tag/v9.3.0). - Added zoom and pan support to the image file preview: use the scroll wheel to zoom at the cursor, click-and-drag to pan, and +/-/0 keyboard shortcuts (reported on webapp). - Added a license preview and diff view when uploading a new license in the System Console, allowing administrators to compare the new license's features with the current license before applying. - Added a toast notification for plugin-rejected file uploads, consistent with the existing notification for rejected downloads. @@ -45,43 +49,39 @@ See [this blog post](https://mattermost.com/blog/mattermost-v11-9-0-is-now-avail - Threads started by a webhook are no longer highlighted for the user who owns the webhook. - Added user setting "Auto-follow threads on channel-wide mentions" (Settings → Notifications). When disabled, @channel/@all/@here mentions no longer force thread membership; users still receive mention notifications but must manually follow the thread. - Added a webapp hook ``registerChannelTypeOption``. + - Added a ``MessagesWillBeConsumedWithContext`` plugin hook. - Hardened the web app against crashes caused by components rendered by a plugin. #### Plugins/Integrations - Implemented clickable action buttons inside post markdown for bots, webhooks, and plugins. Integrations bind ``mmaction://`` markdown links to actions defined in a new ``mm_blocks_actions`` post property. - - Added channel bookmark type ``board`` with an optional ``target_id``. The bookmarks API rejects creating, updating, or deleting board bookmarks but allows reordering them when the caller has bookmark order permission. + - Added channel bookmark type ``board`` with an optional ``target_id``, PostgreSQL migrations (including a nontransactional concurrent index migration), OpenAPI v4 schema updates, and webapp handling. The bookmarks API rejects creating, updating, or deleting board bookmarks but allows reordering them when the caller has bookmark order permission. #### Administration - Added [Azure Blob Storage](ocs.mattermost.com/administration-guide/configure/azure-blob-storage.html) as a selectable backend in the File Storage and Export Storage admin console panels. The S3 Test Connection control is now backend-agnostic and validates the active driver. - Added an Azure Cloud selector to the Azure Blob Storage admin panels with built-in support for Azure Commercial and Azure Government endpoints. Choose "Custom Endpoint" to point at Azurite, a reverse proxy, or any other Azure cloud by providing the full Blob service URL. - - Added a Microsoft Entra ID / DefaultAzureCredential authentication mode to the Azure Blob Storage admin panels alongside the existing shared-key path. Select "Default credential (Microsoft Entra ID)" to authenticate via managed identity, workload identity, service principal environment variables, or ``az login`` — whichever the host environment provides — with no access key required. - - Added Azure Blob Storage support for the optional presigned export-download feature (``EnableExportDirectDownload``). Bulk-export downloads now generate a time-limited Shared Access Signature when the export backend is Azure, matching the existing S3 behavior. + - Added a Microsoft Entra ID / ``DefaultAzureCredential`` authentication mode to the Azure Blob Storage admin panels alongside the existing shared-key path. Select "Default credential (Microsoft Entra ID)" to authenticate via managed identity, workload identity, service principal environment variables, or ``az login`` — whichever the host environment provides — with no access key required. + - Added Azure Blob Storage support for the optional presigned export-download feature (``EnableExportDirectDownload``). Bulk-export downloads now generate a time-limited Shared Access Signature when the export backend is Azure, matching the existing S3 behavior. A new ``FileSettings.ExportAzurePresignExpiresSeconds`` configuration field controls the SAS lifetime (defaults to 6 hours, capped at Azure's 7-day SAS limit). - Added validation of the Azure file storage account name and routed Azure custom-endpoint requests through the standard outbound HTTP transport. - Added SAML connectivity status and error diagnostics to support packet output. - Added OAuth2/OpenID Connect provider connectivity status (GitLab, Google, Office365, OpenID) to the support packet diagnostics. - Added database diagnostics to the support packet, covering connection pool stats on every supported driver and PostgreSQL aggregate performance indicators (cache hit ratio, deadlocks, temp files, lock wait/idle activity, longest running query, and Posts autovacuum/dead tuples). Per-query timeouts and partial-failure handling keep packet generation resilient when individual pg_stat queries fail. - - Added personal access token expiry support. Tokens can now be required to expire within a configured maximum lifetime via the new ``ServiceSettings.MaximumPersonalAccessTokenLifetimeDays`` System Console setting. The policy applies only to newly created tokens; bot tokens are exempt. - - Added an ``ExpiresAt`` column to the ``UserAccessTokens`` table; expired personal access tokens are rejected with HTTP 401 and reaped hourly by a new background job (``cleanup_expired_access_tokens``). Tokens with ``ExpiresAt = 0`` remain non-expiring, preserving behavior for all pre-existing tokens. + - Personal access tokens can now be required to expire within a configured maximum lifetime via the new ``MaximumPersonalAccessTokenLifetimeDays`` System Console setting (non-zero = expiry required and capped to that many days; ``0``, the default, imposes no policy). The policy applies only to newly created tokens; bot tokens are exempt. The ``POST /users/{id}/tokens`` endpoint now accepts a client-supplied ``expires_at`` (Unix millis), and ``mmctl user token generate`` gained an ``--expires-in`` flag (e.g. ``--expires-in 90d``) for creating expiring tokens via CLI. + - Added an ``ExpiresAt`` column to the ``UserAccessTokens`` table and enforced expiry at token validation time. Expired personal access tokens are now rejected with HTTP 401 and reaped hourly by a new background job (``cleanup_expired_access_tokens``); audit events are emitted on rejection (``rejectExpiredUserAccessToken``) and reap (``expireUserAccessToken``). Tokens with ``ExpiresAt = 0`` remain non-expiring, preserving behavior for all pre-existing tokens. - Added a pre-migration setup to fix incorrect database migration numbers that prevented upgrading Mattermost from v10.11 to v11.7. - Added a new ``FileSettings.ExtractContentTimeout`` setting (default 10 seconds) that limits how long a single uploaded document's content extraction occupies a worker, and moved document content extraction to a dedicated, non-blocking worker pool so it no longer delays file uploads for other users. - - Stopped logging the email subject in the "sending mail" server log to prevent potential exposure of PII such as sender names from DM and mention notifications. + - Stopped logging the email subject in the "sending mail" server log to prevent potential exposure of PII such as sender names from Direct Message and mention notifications. - Enabled CJK (Chinese, Japanese, Korean) search by default for PostgreSQL. - Added support for OpenSearch v3, while continuing to support OpenSearch v2. - User attributes can now be synced with AD/LDAP or SAML whether they are user-editable or admin-managed. When an attribute is synced, the "Editable by users" toggle is disabled; remove the sync link to change it again. - Added support for iOS Calls ring for Direct/Group Message channels. - Expanded session attribute collection to include values provided by Desktop App and Mobile clients. - - Removed legacy interactive dialog code path (reported on webapp). - - Added a new column ``board`` type to channel bookmarks, including a nontransactional concurrent index migration on Postgres. - - Preserved unknown permissions during migrations on downgrade. + - Removed legacy interactive dialog code path on webapp. - Added a channel-guard enforcement for scheduled posts and drafts. - - Expanded Session Attribute collection to values provided by our Desktop App/Mobile clients. - -#### mmctl + - Added Phase 8b, 8c, 8d, 8e, 8f, 8h, 12, and 12e of the ``mbe-tech-preview``. - Added a ``mattermost db ping`` subcommand that waits for the database to become reachable, with configurable ``--timeout`` and ``--retry-interval`` flags. - - Added an ``--expires-in`` flag (e.g. ``--expires-in 90d``) to ``mmctl user token generate`` for creating expiring personal access tokens via CLI. #### Performance - - Improved the performance of concurrent logins by removing a global mutex in favor of database serialization for computing login attempts. This also corrects the semantics of the ``MaximumLoginAttempts`` setting, which is now honored across all nodes in the cluster: instead of allowing ``n*MaximumLoginAttempts`` attempts (where ``n`` is the number of nodes), exactly ``MaximumLoginAttempts`` attempts are now allowed regardless of cluster size. + - Improved the performance of concurrent logins by removing a global mutex in favour of database serialization for computing login attempts. This, in turn, fixed the semantics of the ``MaximumLoginAttempts`` setting, which is now honored across all nodes in the cluster: instead of allowing ``n*MaximumLoginAttempts`` attempts, with ``n`` the number of nodes, we now allow ``MaximumLoginAttempts`` attempts regardless of the number of nodes. - Reduced cluster send error logs from oversized ``plugin_statuses_changed`` WebSocket events. ### Bug Fixes @@ -93,7 +93,7 @@ See [this blog post](https://mattermost.com/blog/mattermost-v11-9-0-is-now-avail - Fixed an issue where the Global Threads view showed only 1 quick reaction emoji in the post hover toolbar instead of 3 (reported on webapp). - Fixed IPv6 addresses containing hex segments (e.g. ``:beef:``) being incorrectly rendered as custom emoji in the web app. - Fixed a bulk-import failure ("ChannelMember not found") when a group-channel hash already existed but its membership was incomplete — for example with concurrent import workers, a prior import that crashed mid-loop, or a pre-existing group channel whose membership had drifted. - - Fixed an issue where the content review bot DM displayed an empty ``""`` block under "With comment" when the reporter or reviewer did not enter a comment. + - Fixed an issue where the content review bot Direct Message displayed an empty ``""`` block under "With comment" when the reporter or reviewer did not enter a comment. - Fixed incorrect encoding of image URLs containing query parameters when using an image proxy (reported on webapp). - Fixed an issue where the SAML metadata endpoint did not correctly pull the IDP public certificate. - Fixed an issue where selecting a new role for a team or channel linked to a group in the System Console would not update the role dropdown in the user interface. @@ -111,16 +111,19 @@ See [this blog post](https://mattermost.com/blog/mattermost-v11-9-0-is-now-avail - Fixed an issue where a custom classification selection was lost if a user selected a preset from the classification preset options. - Fixed validation for ``PUT /api/v4/users/{user_id}/auth`` to reject unknown auth services and prevent auth data on email/password users. - Fixed an issue that caused a flagged post to continue being visible for content reviewers until a refresh after deletion. + - Preserved unknown permissions during migrations on downgrade. ### API Changes - Added ``POST /file/test`` (``testFileStore``) API endpoint for backend-agnostic file store connection testing. + - Added ``POST /file/s3_test`` (``testFileStore``) API endpoint. - Removed ``POST /file/s3_test`` (``testS3``) API endpoint. - Added ``GET /access_control/policy`` (``getTeamAccessControlPolicy``) API endpoint. - Added ``GET /sessions/attributes/manifest`` (``getSessionAttributesManifest``) API endpoint. - - The ``POST /users/{id}/tokens`` endpoint now accepts a client-supplied ``expires_at`` (Unix milliseconds) for creating expiring personal access tokens. + - Added a new API file: ``team_abac_api_test.go``. + - Added a new API file: ``team_membership_enforcement_test.go``. ### Audit Log Event Changes - - Added ``AuditEventRejectExpiredUserAccessToken`` audit log event, emitted when an expired personal access token is rejected and reap ``expireUserAccessToken``. + - Added ``AuditEventRejectExpiredUserAccessToken`` audit log event. ### Go Version - v11.9 is built with Go ``v1.26.3``. From 4275e8b7c5427f8810d2be55c1fbf3871aee50a5 Mon Sep 17 00:00:00 2001 From: Amy Blais <29708087+amyblais@users.noreply.github.com> Date: Thu, 18 Jun 2026 16:46:23 +0300 Subject: [PATCH 09/50] Update mattermost-v11-changelog.md --- source/product-overview/mattermost-v11-changelog.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/product-overview/mattermost-v11-changelog.md b/source/product-overview/mattermost-v11-changelog.md index fd6917224b0..2e0959bf430 100644 --- a/source/product-overview/mattermost-v11-changelog.md +++ b/source/product-overview/mattermost-v11-changelog.md @@ -25,9 +25,9 @@ Platform and OS scope reflects reported and tested environments and may not repr #### 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 ``FileSettings`` in ``config.json``, added ``AzureStorageAccount``, ``AzureAccessKey``, ``AzureContainer``, ``AzurePathPrefix``, ``AzureEndpoint``, ``AzureSSL``, and ``AzureRequestTimeoutMilliseconds`` configuration settings for Azure Blob Storage filestore backend support. - Under ``FileSettings`` in ``config.json``, added ``AzureCloud``, ``ExportAzureCloud``, ``AzureAuthMode``, ``ExportAzureAuthMode``, and ``ExportAzurePresignExpiresSeconds`` configuration settings for Azure Blob Storage support. - - Under ``FileSettings`` in ``config.json``, ad - - ded ``ExtractContentTimeout`` configuration setting to limit how long a single uploaded document's content extraction occupies a worker (default 10 seconds). + - Under ``FileSettings`` in ``config.json``, added ``ExtractContentTimeout`` configuration setting to limit how long a single uploaded document's content extraction occupies a worker (default 10 seconds). - Under ``ServiceSettings`` in ``config.json``, added ``MaximumPersonalAccessTokenLifetimeDays`` configuration setting to require personal access tokens to expire within a configured maximum lifetime (``0`` imposes no policy). - Under ``AccessControlSettings`` in ``config.json``, added ``EnforceDeviceIDConsistency`` configuration setting to enforce device ID consistency across sessions. - Under ``AccessControlSettings`` in ``config.json``, added ``TrustProxyDeviceIdentityHeader`` configuration setting to trust a proxy-supplied device identity header for session attribute collection. From baae4ee74c6048c88c529e29e66fba06816dc354 Mon Sep 17 00:00:00 2001 From: Amy Blais <29708087+amyblais@users.noreply.github.com> Date: Thu, 18 Jun 2026 19:12:29 +0300 Subject: [PATCH 10/50] Update mattermost-v11-changelog.md --- source/product-overview/mattermost-v11-changelog.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/source/product-overview/mattermost-v11-changelog.md b/source/product-overview/mattermost-v11-changelog.md index 2e0959bf430..28417b75187 100644 --- a/source/product-overview/mattermost-v11-changelog.md +++ b/source/product-overview/mattermost-v11-changelog.md @@ -24,13 +24,14 @@ Platform and OS scope reflects reported and tested environments and may not repr #### 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 ``AccessControlSettings`` in ``config.json``, added ``EnforceDeviceIDConsistency`` configuration setting to enforce device ID consistency across sessions. + - Under ``AccessControlSettings`` in ``config.json``, added ``TrustProxyDeviceIdentityHeader`` configuration setting to trust a proxy-supplied device identity header for session attribute collection. - **Changes to All plans:** - Under ``FileSettings`` in ``config.json``, added ``AzureStorageAccount``, ``AzureAccessKey``, ``AzureContainer``, ``AzurePathPrefix``, ``AzureEndpoint``, ``AzureSSL``, and ``AzureRequestTimeoutMilliseconds`` configuration settings for Azure Blob Storage filestore backend support. - Under ``FileSettings`` in ``config.json``, added ``AzureCloud``, ``ExportAzureCloud``, ``AzureAuthMode``, ``ExportAzureAuthMode``, and ``ExportAzurePresignExpiresSeconds`` configuration settings for Azure Blob Storage support. - Under ``FileSettings`` in ``config.json``, added ``ExtractContentTimeout`` configuration setting to limit how long a single uploaded document's content extraction occupies a worker (default 10 seconds). - Under ``ServiceSettings`` in ``config.json``, added ``MaximumPersonalAccessTokenLifetimeDays`` configuration setting to require personal access tokens to expire within a configured maximum lifetime (``0`` imposes no policy). - - Under ``AccessControlSettings`` in ``config.json``, added ``EnforceDeviceIDConsistency`` configuration setting to enforce device ID consistency across sessions. - - Under ``AccessControlSettings`` in ``config.json``, added ``TrustProxyDeviceIdentityHeader`` configuration setting to trust a proxy-supplied device identity header for session attribute collection. ### Improvements See [this blog post](https://mattermost.com/blog/mattermost-v11-9-0-is-now-available/) on the highlights in our latest release. From 68bdcde6ab9fd6d93d71b9fb70de6af8119b9173 Mon Sep 17 00:00:00 2001 From: Amy Blais <29708087+amyblais@users.noreply.github.com> Date: Thu, 18 Jun 2026 19:20:54 +0300 Subject: [PATCH 11/50] Update mattermost-v11-changelog.md --- source/product-overview/mattermost-v11-changelog.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/source/product-overview/mattermost-v11-changelog.md b/source/product-overview/mattermost-v11-changelog.md index 28417b75187..f5f2ecce2d7 100644 --- a/source/product-overview/mattermost-v11-changelog.md +++ b/source/product-overview/mattermost-v11-changelog.md @@ -19,8 +19,12 @@ Platform and OS scope reflects reported and tested environments and may not repr **Release day: 2026-07-16** ### Upgrade Impact + #### Database Schema Changes - - + - The following schema changes are included in the v11.8 release. No database downtime is expected for this upgrade. See the [Important Upgrade Notes](https://docs.mattermost.com/upgrade/important-upgrade-notes.html) for more details. + - Added the ``voipdeviceid`` column to the ``sessions`` table to support VoIP device tracking; metadata-only DDL on PostgreSQL 11+, minimal performance impact expected. + - Added composite index ``idx_access_control_policies_type_id`` on ``AccessControlPolicies(Type, Id)`` to improve policy lookup performance with no downtime or blocking impact. + - Removed orphaned ``threadmemberships`` rows where the user is no longer a channel member; irreversible data-only migration that may run slowly on large instances. #### 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. From b25c746e01ca4b54aae58da0631a39aaee644fd2 Mon Sep 17 00:00:00 2001 From: Amy Blais <29708087+amyblais@users.noreply.github.com> Date: Mon, 22 Jun 2026 13:31:55 +0300 Subject: [PATCH 12/50] Update mattermost-v11-changelog.md --- source/product-overview/mattermost-v11-changelog.md | 1 + 1 file changed, 1 insertion(+) diff --git a/source/product-overview/mattermost-v11-changelog.md b/source/product-overview/mattermost-v11-changelog.md index f5f2ecce2d7..18807caca50 100644 --- a/source/product-overview/mattermost-v11-changelog.md +++ b/source/product-overview/mattermost-v11-changelog.md @@ -84,6 +84,7 @@ See [this blog post](https://mattermost.com/blog/mattermost-v11-9-0-is-now-avail - Added a channel-guard enforcement for scheduled posts and drafts. - Added Phase 8b, 8c, 8d, 8e, 8f, 8h, 12, and 12e of the ``mbe-tech-preview``. - Added a ``mattermost db ping`` subcommand that waits for the database to become reachable, with configurable ``--timeout`` and ``--retry-interval`` flags. + - Added an expiry chooser to the **Personal Access Token** creation user interface in **Account Settings**, backed by the new ``ServiceSettings.MaximumPersonalAccessTokenLifetimeDays`` admin policy, which is now also configurable in the ``System Console`` under ``Integrations > Integration Management``. The token list (user and admin) shows each token's expiry and status (active / expired / disabled) with a warning when a token is within 7 days of expiry. #### Performance - Improved the performance of concurrent logins by removing a global mutex in favour of database serialization for computing login attempts. This, in turn, fixed the semantics of the ``MaximumLoginAttempts`` setting, which is now honored across all nodes in the cluster: instead of allowing ``n*MaximumLoginAttempts`` attempts, with ``n`` the number of nodes, we now allow ``MaximumLoginAttempts`` attempts regardless of the number of nodes. From 5a86048b4600f918b95bca0a5cd8b54e9a2f0606 Mon Sep 17 00:00:00 2001 From: Amy Blais <29708087+amyblais@users.noreply.github.com> Date: Mon, 22 Jun 2026 13:37:04 +0300 Subject: [PATCH 13/50] Update mattermost-v11-changelog.md --- source/product-overview/mattermost-v11-changelog.md | 1 + 1 file changed, 1 insertion(+) diff --git a/source/product-overview/mattermost-v11-changelog.md b/source/product-overview/mattermost-v11-changelog.md index 18807caca50..de17ff79e18 100644 --- a/source/product-overview/mattermost-v11-changelog.md +++ b/source/product-overview/mattermost-v11-changelog.md @@ -85,6 +85,7 @@ See [this blog post](https://mattermost.com/blog/mattermost-v11-9-0-is-now-avail - Added Phase 8b, 8c, 8d, 8e, 8f, 8h, 12, and 12e of the ``mbe-tech-preview``. - Added a ``mattermost db ping`` subcommand that waits for the database to become reachable, with configurable ``--timeout`` and ``--retry-interval`` flags. - Added an expiry chooser to the **Personal Access Token** creation user interface in **Account Settings**, backed by the new ``ServiceSettings.MaximumPersonalAccessTokenLifetimeDays`` admin policy, which is now also configurable in the ``System Console`` under ``Integrations > Integration Management``. The token list (user and admin) shows each token's expiry and status (active / expired / disabled) with a warning when a token is within 7 days of expiry. + - Added a new "rank" custom profile attribute type whose options carry an explicit ordering. System Admins can create and manage ranked attributes in the **System Console** and assign ranked values to users, enabling attribute-based access control policies that compare clearance- or classification-style attributes with ordinal operators (for example, "is at least Secret") instead of enumerating every qualifying value. #### Performance - Improved the performance of concurrent logins by removing a global mutex in favour of database serialization for computing login attempts. This, in turn, fixed the semantics of the ``MaximumLoginAttempts`` setting, which is now honored across all nodes in the cluster: instead of allowing ``n*MaximumLoginAttempts`` attempts, with ``n`` the number of nodes, we now allow ``MaximumLoginAttempts`` attempts regardless of the number of nodes. From cf4ee8a97e74bd76734a544cfbc94c61bd698ce0 Mon Sep 17 00:00:00 2001 From: Amy Blais <29708087+amyblais@users.noreply.github.com> Date: Mon, 22 Jun 2026 13:39:24 +0300 Subject: [PATCH 14/50] Update mattermost-v11-changelog.md --- source/product-overview/mattermost-v11-changelog.md | 1 + 1 file changed, 1 insertion(+) diff --git a/source/product-overview/mattermost-v11-changelog.md b/source/product-overview/mattermost-v11-changelog.md index de17ff79e18..f3389e4fc1b 100644 --- a/source/product-overview/mattermost-v11-changelog.md +++ b/source/product-overview/mattermost-v11-changelog.md @@ -45,6 +45,7 @@ See [this blog post](https://mattermost.com/blog/mattermost-v11-9-0-is-now-avail - Pre-packaged Agents plugin version [v2.4.0](https://github.com/mattermost/mattermost-plugin-agents/releases/tag/v2.4.0). - Pre-packaged Calls plugin version [v1.12.0](https://github.com/mattermost/mattermost-plugin-calls/releases/tag/v1.12.0). - Pre-packaged Boards plugin version [v9.3.0](https://github.com/mattermost/mattermost-plugin-boards/releases/tag/v9.3.0). + - Pre-packaged GitLab plugin version [v1.13.0](https://github.com/mattermost/mattermost-plugin-gitlab/releases/tag/v1.13.0). - Added zoom and pan support to the image file preview: use the scroll wheel to zoom at the cursor, click-and-drag to pan, and +/-/0 keyboard shortcuts (reported on webapp). - Added a license preview and diff view when uploading a new license in the System Console, allowing administrators to compare the new license's features with the current license before applying. - Added a toast notification for plugin-rejected file uploads, consistent with the existing notification for rejected downloads. From 53190741b30c0852d7cafe4b7a0323a65a1b2496 Mon Sep 17 00:00:00 2001 From: Amy Blais <29708087+amyblais@users.noreply.github.com> Date: Mon, 22 Jun 2026 14:55:25 +0300 Subject: [PATCH 15/50] Update mattermost-v11-changelog.md --- source/product-overview/mattermost-v11-changelog.md | 1 + 1 file changed, 1 insertion(+) diff --git a/source/product-overview/mattermost-v11-changelog.md b/source/product-overview/mattermost-v11-changelog.md index f3389e4fc1b..6a27dd0945c 100644 --- a/source/product-overview/mattermost-v11-changelog.md +++ b/source/product-overview/mattermost-v11-changelog.md @@ -25,6 +25,7 @@ Platform and OS scope reflects reported and tested environments and may not repr - Added the ``voipdeviceid`` column to the ``sessions`` table to support VoIP device tracking; metadata-only DDL on PostgreSQL 11+, minimal performance impact expected. - Added composite index ``idx_access_control_policies_type_id`` on ``AccessControlPolicies(Type, Id)`` to improve policy lookup performance with no downtime or blocking impact. - Removed orphaned ``threadmemberships`` rows where the user is no longer a channel member; irreversible data-only migration that may run slowly on large instances. + - Added a ``lastused`` column to ``incomingwebhooks`` with a negligible-duration catalog-only lock and no downtime required. #### 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. From f58527529d73423f23acace145923f2ceaeff3b4 Mon Sep 17 00:00:00 2001 From: Amy Blais <29708087+amyblais@users.noreply.github.com> Date: Mon, 22 Jun 2026 15:35:55 +0300 Subject: [PATCH 16/50] Update mattermost-v11-changelog.md --- source/product-overview/mattermost-v11-changelog.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/source/product-overview/mattermost-v11-changelog.md b/source/product-overview/mattermost-v11-changelog.md index 6a27dd0945c..c26696bfce3 100644 --- a/source/product-overview/mattermost-v11-changelog.md +++ b/source/product-overview/mattermost-v11-changelog.md @@ -26,6 +26,9 @@ Platform and OS scope reflects reported and tested environments and may not repr - Added composite index ``idx_access_control_policies_type_id`` on ``AccessControlPolicies(Type, Id)`` to improve policy lookup performance with no downtime or blocking impact. - Removed orphaned ``threadmemberships`` rows where the user is no longer a channel member; irreversible data-only migration that may run slowly on large instances. - Added a ``lastused`` column to ``incomingwebhooks`` with a negligible-duration catalog-only lock and no downtime required. + - Added ``'rank'`` to the ``property_field_type`` enum via a catalog-only ``ALTER TYPE`` statement; no user-table locks are acquired and no downtime is required for the upgrade. + - Converted up to three classification-marking ``PropertyFields`` from type ``'select'`` to ``'rank'`` and backfilled rank ordering into their options; negligible performance impact. + - Added ``rank``-type support to the ``AttributeView`` materialized view so ABAC policies can evaluate ranked property options; no performance impact expected on feature-flagged deployments. #### 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. From d9459c14b95a1e5d8a085988cd84507a732ebdd4 Mon Sep 17 00:00:00 2001 From: Amy Blais <29708087+amyblais@users.noreply.github.com> Date: Mon, 22 Jun 2026 15:54:22 +0300 Subject: [PATCH 17/50] Update mattermost-v11-changelog.md --- source/product-overview/mattermost-v11-changelog.md | 1 + 1 file changed, 1 insertion(+) diff --git a/source/product-overview/mattermost-v11-changelog.md b/source/product-overview/mattermost-v11-changelog.md index c26696bfce3..222c9d9e19e 100644 --- a/source/product-overview/mattermost-v11-changelog.md +++ b/source/product-overview/mattermost-v11-changelog.md @@ -29,6 +29,7 @@ Platform and OS scope reflects reported and tested environments and may not repr - Added ``'rank'`` to the ``property_field_type`` enum via a catalog-only ``ALTER TYPE`` statement; no user-table locks are acquired and no downtime is required for the upgrade. - Converted up to three classification-marking ``PropertyFields`` from type ``'select'`` to ``'rank'`` and backfilled rank ordering into their options; negligible performance impact. - Added ``rank``-type support to the ``AttributeView`` materialized view so ABAC policies can evaluate ranked property options; no performance impact expected on feature-flagged deployments. + - Renamed ``system_classification`` and ``channel_classification`` entries in ``PropertyFields`` to the canonical name ``classification``; affects at most two rows with no performance impact. #### 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. From dd7964b1ffc1ea5ddfac6c28868be6a4cadfbbaa Mon Sep 17 00:00:00 2001 From: Amy Blais <29708087+amyblais@users.noreply.github.com> Date: Tue, 23 Jun 2026 09:33:48 +0300 Subject: [PATCH 18/50] Update mattermost-v11-changelog.md --- source/product-overview/mattermost-v11-changelog.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/source/product-overview/mattermost-v11-changelog.md b/source/product-overview/mattermost-v11-changelog.md index 222c9d9e19e..8abba98701d 100644 --- a/source/product-overview/mattermost-v11-changelog.md +++ b/source/product-overview/mattermost-v11-changelog.md @@ -21,7 +21,7 @@ Platform and OS scope reflects reported and tested environments and may not repr ### Upgrade Impact #### Database Schema Changes - - The following schema changes are included in the v11.8 release. No database downtime is expected for this upgrade. See the [Important Upgrade Notes](https://docs.mattermost.com/upgrade/important-upgrade-notes.html) for more details. + - The following schema changes are included in the v11.9 release. No database downtime is expected for this upgrade. See the [Important Upgrade Notes](https://docs.mattermost.com/upgrade/important-upgrade-notes.html) for more details. - Added the ``voipdeviceid`` column to the ``sessions`` table to support VoIP device tracking; metadata-only DDL on PostgreSQL 11+, minimal performance impact expected. - Added composite index ``idx_access_control_policies_type_id`` on ``AccessControlPolicies(Type, Id)`` to improve policy lookup performance with no downtime or blocking impact. - Removed orphaned ``threadmemberships`` rows where the user is no longer a channel member; irreversible data-only migration that may run slowly on large instances. @@ -92,6 +92,7 @@ See [this blog post](https://mattermost.com/blog/mattermost-v11-9-0-is-now-avail - Added a ``mattermost db ping`` subcommand that waits for the database to become reachable, with configurable ``--timeout`` and ``--retry-interval`` flags. - Added an expiry chooser to the **Personal Access Token** creation user interface in **Account Settings**, backed by the new ``ServiceSettings.MaximumPersonalAccessTokenLifetimeDays`` admin policy, which is now also configurable in the ``System Console`` under ``Integrations > Integration Management``. The token list (user and admin) shows each token's expiry and status (active / expired / disabled) with a warning when a token is within 7 days of expiry. - Added a new "rank" custom profile attribute type whose options carry an explicit ordering. System Admins can create and manage ranked attributes in the **System Console** and assign ranked values to users, enabling attribute-based access control policies that compare clearance- or classification-style attributes with ordinal operators (for example, "is at least Secret") instead of enumerating every qualifying value. + - Added a new ``ClusterReliableFallbackLength`` metric with the total length in bytes of the ``SendBestEffort`` calls (UDP) that had to fallback to TCP because of the message length. #### Performance - Improved the performance of concurrent logins by removing a global mutex in favour of database serialization for computing login attempts. This, in turn, fixed the semantics of the ``MaximumLoginAttempts`` setting, which is now honored across all nodes in the cluster: instead of allowing ``n*MaximumLoginAttempts`` attempts, with ``n`` the number of nodes, we now allow ``MaximumLoginAttempts`` attempts regardless of the number of nodes. From cb9c6053baa777b1df07d54a8f4e14e59ba6f437 Mon Sep 17 00:00:00 2001 From: Amy Blais <29708087+amyblais@users.noreply.github.com> Date: Tue, 23 Jun 2026 09:35:11 +0300 Subject: [PATCH 19/50] Update mattermost-v11-changelog.md --- source/product-overview/mattermost-v11-changelog.md | 1 + 1 file changed, 1 insertion(+) diff --git a/source/product-overview/mattermost-v11-changelog.md b/source/product-overview/mattermost-v11-changelog.md index 8abba98701d..28d8e652f73 100644 --- a/source/product-overview/mattermost-v11-changelog.md +++ b/source/product-overview/mattermost-v11-changelog.md @@ -93,6 +93,7 @@ See [this blog post](https://mattermost.com/blog/mattermost-v11-9-0-is-now-avail - Added an expiry chooser to the **Personal Access Token** creation user interface in **Account Settings**, backed by the new ``ServiceSettings.MaximumPersonalAccessTokenLifetimeDays`` admin policy, which is now also configurable in the ``System Console`` under ``Integrations > Integration Management``. The token list (user and admin) shows each token's expiry and status (active / expired / disabled) with a warning when a token is within 7 days of expiry. - Added a new "rank" custom profile attribute type whose options carry an explicit ordering. System Admins can create and manage ranked attributes in the **System Console** and assign ranked values to users, enabling attribute-based access control policies that compare clearance- or classification-style attributes with ordinal operators (for example, "is at least Secret") instead of enumerating every qualifying value. - Added a new ``ClusterReliableFallbackLength`` metric with the total length in bytes of the ``SendBestEffort`` calls (UDP) that had to fallback to TCP because of the message length. + - Made ``SendBestEffort`` cluster messages fall back to using TCP when their length is larger than a UDP datagram. #### Performance - Improved the performance of concurrent logins by removing a global mutex in favour of database serialization for computing login attempts. This, in turn, fixed the semantics of the ``MaximumLoginAttempts`` setting, which is now honored across all nodes in the cluster: instead of allowing ``n*MaximumLoginAttempts`` attempts, with ``n`` the number of nodes, we now allow ``MaximumLoginAttempts`` attempts regardless of the number of nodes. From cd8c9942b1c084e17835fb5854f572aa6e9cfb13 Mon Sep 17 00:00:00 2001 From: Amy Blais <29708087+amyblais@users.noreply.github.com> Date: Tue, 23 Jun 2026 09:37:15 +0300 Subject: [PATCH 20/50] Update mattermost-v11-changelog.md --- source/product-overview/mattermost-v11-changelog.md | 1 + 1 file changed, 1 insertion(+) diff --git a/source/product-overview/mattermost-v11-changelog.md b/source/product-overview/mattermost-v11-changelog.md index 28d8e652f73..27c6ad03114 100644 --- a/source/product-overview/mattermost-v11-changelog.md +++ b/source/product-overview/mattermost-v11-changelog.md @@ -66,6 +66,7 @@ See [this blog post](https://mattermost.com/blog/mattermost-v11-9-0-is-now-avail #### Plugins/Integrations - Implemented clickable action buttons inside post markdown for bots, webhooks, and plugins. Integrations bind ``mmaction://`` markdown links to actions defined in a new ``mm_blocks_actions`` post property. - Added channel bookmark type ``board`` with an optional ``target_id``, PostgreSQL migrations (including a nontransactional concurrent index migration), OpenAPI v4 schema updates, and webapp handling. The bookmarks API rejects creating, updating, or deleting board bookmarks but allows reordering them when the caller has bookmark order permission. + - Plugin registry's ``registerRightHandSidebarComponent`` now accepts an optional ``showPopout`` boolean (default ``true``) to hide the "Open in new window" button from the plugin right-hand side header. #### Administration - Added [Azure Blob Storage](ocs.mattermost.com/administration-guide/configure/azure-blob-storage.html) as a selectable backend in the File Storage and Export Storage admin console panels. The S3 Test Connection control is now backend-agnostic and validates the active driver. From fe4b53b66ad2241fcbe7e62c0054623a57f59809 Mon Sep 17 00:00:00 2001 From: Amy Blais <29708087+amyblais@users.noreply.github.com> Date: Tue, 23 Jun 2026 10:31:32 +0300 Subject: [PATCH 21/50] Update mattermost-v11-changelog.md --- source/product-overview/mattermost-v11-changelog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/product-overview/mattermost-v11-changelog.md b/source/product-overview/mattermost-v11-changelog.md index 27c6ad03114..3d5332e01f7 100644 --- a/source/product-overview/mattermost-v11-changelog.md +++ b/source/product-overview/mattermost-v11-changelog.md @@ -48,7 +48,7 @@ See [this blog post](https://mattermost.com/blog/mattermost-v11-9-0-is-now-avail #### User Interface - Pre-packaged Playbooks plugin version [v2.10.0](https://github.com/mattermost/mattermost-plugin-playbooks/releases/tag/v2.10.0). - Pre-packaged Agents plugin version [v2.4.0](https://github.com/mattermost/mattermost-plugin-agents/releases/tag/v2.4.0). - - Pre-packaged Calls plugin version [v1.12.0](https://github.com/mattermost/mattermost-plugin-calls/releases/tag/v1.12.0). + - Pre-packaged [Calls plugin](https://docs.mattermost.com/end-user-guide/collaborate/make-calls.html) version [v1.12.0](https://github.com/mattermost/mattermost-plugin-calls/releases/tag/v1.12.0). - Pre-packaged Boards plugin version [v9.3.0](https://github.com/mattermost/mattermost-plugin-boards/releases/tag/v9.3.0). - Pre-packaged GitLab plugin version [v1.13.0](https://github.com/mattermost/mattermost-plugin-gitlab/releases/tag/v1.13.0). - Added zoom and pan support to the image file preview: use the scroll wheel to zoom at the cursor, click-and-drag to pan, and +/-/0 keyboard shortcuts (reported on webapp). From 3c574756507feb64334bd258be5c815f325c9bce Mon Sep 17 00:00:00 2001 From: Amy Blais <29708087+amyblais@users.noreply.github.com> Date: Tue, 23 Jun 2026 11:14:24 +0300 Subject: [PATCH 22/50] Update mattermost-v11-changelog.md --- source/product-overview/mattermost-v11-changelog.md | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/source/product-overview/mattermost-v11-changelog.md b/source/product-overview/mattermost-v11-changelog.md index 3d5332e01f7..5d35c0708cf 100644 --- a/source/product-overview/mattermost-v11-changelog.md +++ b/source/product-overview/mattermost-v11-changelog.md @@ -52,7 +52,6 @@ See [this blog post](https://mattermost.com/blog/mattermost-v11-9-0-is-now-avail - Pre-packaged Boards plugin version [v9.3.0](https://github.com/mattermost/mattermost-plugin-boards/releases/tag/v9.3.0). - Pre-packaged GitLab plugin version [v1.13.0](https://github.com/mattermost/mattermost-plugin-gitlab/releases/tag/v1.13.0). - Added zoom and pan support to the image file preview: use the scroll wheel to zoom at the cursor, click-and-drag to pan, and +/-/0 keyboard shortcuts (reported on webapp). - - Added a license preview and diff view when uploading a new license in the System Console, allowing administrators to compare the new license's features with the current license before applying. - Added a toast notification for plugin-rejected file uploads, consistent with the existing notification for rejected downloads. - Added a Data Spillage Handling feature discovery page in the System Console for lower-tier licenses. - Added clearer validation messaging for invalid user attribute names in the System Console. @@ -65,7 +64,7 @@ See [this blog post](https://mattermost.com/blog/mattermost-v11-9-0-is-now-avail #### Plugins/Integrations - Implemented clickable action buttons inside post markdown for bots, webhooks, and plugins. Integrations bind ``mmaction://`` markdown links to actions defined in a new ``mm_blocks_actions`` post property. - - Added channel bookmark type ``board`` with an optional ``target_id``, PostgreSQL migrations (including a nontransactional concurrent index migration), OpenAPI v4 schema updates, and webapp handling. The bookmarks API rejects creating, updating, or deleting board bookmarks but allows reordering them when the caller has bookmark order permission. + - Added channel bookmark type ``board`` with an optional ``target_id``. The bookmarks API rejects creating, updating, or deleting board bookmarks but allows reordering them when the caller has bookmark order permission. - Plugin registry's ``registerRightHandSidebarComponent`` now accepts an optional ``showPopout`` boolean (default ``true``) to hide the "Open in new window" button from the plugin right-hand side header. #### Administration @@ -77,8 +76,7 @@ See [this blog post](https://mattermost.com/blog/mattermost-v11-9-0-is-now-avail - Added SAML connectivity status and error diagnostics to support packet output. - Added OAuth2/OpenID Connect provider connectivity status (GitLab, Google, Office365, OpenID) to the support packet diagnostics. - Added database diagnostics to the support packet, covering connection pool stats on every supported driver and PostgreSQL aggregate performance indicators (cache hit ratio, deadlocks, temp files, lock wait/idle activity, longest running query, and Posts autovacuum/dead tuples). Per-query timeouts and partial-failure handling keep packet generation resilient when individual pg_stat queries fail. - - Personal access tokens can now be required to expire within a configured maximum lifetime via the new ``MaximumPersonalAccessTokenLifetimeDays`` System Console setting (non-zero = expiry required and capped to that many days; ``0``, the default, imposes no policy). The policy applies only to newly created tokens; bot tokens are exempt. The ``POST /users/{id}/tokens`` endpoint now accepts a client-supplied ``expires_at`` (Unix millis), and ``mmctl user token generate`` gained an ``--expires-in`` flag (e.g. ``--expires-in 90d``) for creating expiring tokens via CLI. - - Added an ``ExpiresAt`` column to the ``UserAccessTokens`` table and enforced expiry at token validation time. Expired personal access tokens are now rejected with HTTP 401 and reaped hourly by a new background job (``cleanup_expired_access_tokens``); audit events are emitted on rejection (``rejectExpiredUserAccessToken``) and reap (``expireUserAccessToken``). Tokens with ``ExpiresAt = 0`` remain non-expiring, preserving behavior for all pre-existing tokens. + - Personal access tokens can now be required to expire within a configured maximum lifetime via the new ``MaximumPersonalAccessTokenLifetimeDays`` System Console setting (non-zero = expiry required and capped to that many days; ``0``, the default, imposes no policy). The policy applies only to newly created tokens; bot tokens are exempt. The ``POST /users/{id}/tokens`` endpoint now accepts a client-supplied ``expires_at`` (Unix millis), and ``mmctl user token generate`` gained an ``--expires-in`` flag (e.g. ``--expires-in 90d``) for creating expiring tokens via CLI. Added an ``ExpiresAt`` column to the ``UserAccessTokens`` table and enforced expiry at token validation time. Expired personal access tokens are now rejected with HTTP 401 and reaped hourly by a new background job (``cleanup_expired_access_tokens``); audit events are emitted on rejection (``rejectExpiredUserAccessToken``) and reap (``expireUserAccessToken``). Tokens with ``ExpiresAt = 0`` remain non-expiring, preserving behavior for all pre-existing tokens. Added an expiry chooser to the **Personal Access Token** creation user interface in **Account Settings**, backed by the new ``ServiceSettings.MaximumPersonalAccessTokenLifetimeDays`` admin policy, which is now also configurable in the ``System Console`` under ``Integrations > Integration Management``. The token list (user and admin) shows each token's expiry and status (active / expired / disabled) with a warning when a token is within 7 days of expiry. - Added a pre-migration setup to fix incorrect database migration numbers that prevented upgrading Mattermost from v10.11 to v11.7. - Added a new ``FileSettings.ExtractContentTimeout`` setting (default 10 seconds) that limits how long a single uploaded document's content extraction occupies a worker, and moved document content extraction to a dedicated, non-blocking worker pool so it no longer delays file uploads for other users. - Stopped logging the email subject in the "sending mail" server log to prevent potential exposure of PII such as sender names from Direct Message and mention notifications. @@ -91,10 +89,10 @@ See [this blog post](https://mattermost.com/blog/mattermost-v11-9-0-is-now-avail - Added a channel-guard enforcement for scheduled posts and drafts. - Added Phase 8b, 8c, 8d, 8e, 8f, 8h, 12, and 12e of the ``mbe-tech-preview``. - Added a ``mattermost db ping`` subcommand that waits for the database to become reachable, with configurable ``--timeout`` and ``--retry-interval`` flags. - - Added an expiry chooser to the **Personal Access Token** creation user interface in **Account Settings**, backed by the new ``ServiceSettings.MaximumPersonalAccessTokenLifetimeDays`` admin policy, which is now also configurable in the ``System Console`` under ``Integrations > Integration Management``. The token list (user and admin) shows each token's expiry and status (active / expired / disabled) with a warning when a token is within 7 days of expiry. - Added a new "rank" custom profile attribute type whose options carry an explicit ordering. System Admins can create and manage ranked attributes in the **System Console** and assign ranked values to users, enabling attribute-based access control policies that compare clearance- or classification-style attributes with ordinal operators (for example, "is at least Secret") instead of enumerating every qualifying value. - Added a new ``ClusterReliableFallbackLength`` metric with the total length in bytes of the ``SendBestEffort`` calls (UDP) that had to fallback to TCP because of the message length. - Made ``SendBestEffort`` cluster messages fall back to using TCP when their length is larger than a UDP datagram. + - Added a license preview and diff view when uploading a new license in the System Console, allowing administrators to compare the new license's features with the current license before applying. #### Performance - Improved the performance of concurrent logins by removing a global mutex in favour of database serialization for computing login attempts. This, in turn, fixed the semantics of the ``MaximumLoginAttempts`` setting, which is now honored across all nodes in the cluster: instead of allowing ``n*MaximumLoginAttempts`` attempts, with ``n`` the number of nodes, we now allow ``MaximumLoginAttempts`` attempts regardless of the number of nodes. From 3ba6be1fc6b5ff46bfe473df810615ab3d08b0ef Mon Sep 17 00:00:00 2001 From: Amy Blais <29708087+amyblais@users.noreply.github.com> Date: Tue, 23 Jun 2026 12:04:04 +0300 Subject: [PATCH 23/50] Update mattermost-v11-changelog.md --- source/product-overview/mattermost-v11-changelog.md | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/source/product-overview/mattermost-v11-changelog.md b/source/product-overview/mattermost-v11-changelog.md index 5d35c0708cf..7e87caec5ae 100644 --- a/source/product-overview/mattermost-v11-changelog.md +++ b/source/product-overview/mattermost-v11-changelog.md @@ -68,11 +68,12 @@ See [this blog post](https://mattermost.com/blog/mattermost-v11-9-0-is-now-avail - Plugin registry's ``registerRightHandSidebarComponent`` now accepts an optional ``showPopout`` boolean (default ``true``) to hide the "Open in new window" button from the plugin right-hand side header. #### Administration - - Added [Azure Blob Storage](ocs.mattermost.com/administration-guide/configure/azure-blob-storage.html) as a selectable backend in the File Storage and Export Storage admin console panels. The S3 Test Connection control is now backend-agnostic and validates the active driver. - - Added an Azure Cloud selector to the Azure Blob Storage admin panels with built-in support for Azure Commercial and Azure Government endpoints. Choose "Custom Endpoint" to point at Azurite, a reverse proxy, or any other Azure cloud by providing the full Blob service URL. - - Added a Microsoft Entra ID / ``DefaultAzureCredential`` authentication mode to the Azure Blob Storage admin panels alongside the existing shared-key path. Select "Default credential (Microsoft Entra ID)" to authenticate via managed identity, workload identity, service principal environment variables, or ``az login`` — whichever the host environment provides — with no access key required. - - Added Azure Blob Storage support for the optional presigned export-download feature (``EnableExportDirectDownload``). Bulk-export downloads now generate a time-limited Shared Access Signature when the export backend is Azure, matching the existing S3 behavior. A new ``FileSettings.ExportAzurePresignExpiresSeconds`` configuration field controls the SAS lifetime (defaults to 6 hours, capped at Azure's 7-day SAS limit). - - Added validation of the Azure file storage account name and routed Azure custom-endpoint requests through the standard outbound HTTP transport. + - Added [Azure Blob Storage](ocs.mattermost.com/administration-guide/configure/azure-blob-storage.html) support. + - Added Azure Blob Storage as a selectable backend in the File Storage and Export Storage admin console panels. The S3 Test Connection control is now backend-agnostic and validates the active driver. + - Added an Azure Cloud selector to the Azure Blob Storage admin panels with built-in support for Azure Commercial and Azure Government endpoints. Choose "Custom Endpoint" to point at Azurite, a reverse proxy, or any other Azure cloud by providing the full Blob service URL. + - Added a Microsoft Entra ID / ``DefaultAzureCredential`` authentication mode to the Azure Blob Storage admin panels alongside the existing shared-key path. Select "Default credential (Microsoft Entra ID)" to authenticate via managed identity, workload identity, service principal environment variables, or ``az login`` — whichever the host environment provides — with no access key required. + - Added Azure Blob Storage support for the optional presigned export-download feature (``EnableExportDirectDownload``). Bulk-export downloads now generate a time-limited Shared Access Signature when the export backend is Azure, matching the existing S3 behavior. A new ``FileSettings.ExportAzurePresignExpiresSeconds`` configuration field controls the SAS lifetime (defaults to 6 hours, capped at Azure's 7-day SAS limit). + - Added validation of the Azure file storage account name and routed Azure custom-endpoint requests through the standard outbound HTTP transport. - Added SAML connectivity status and error diagnostics to support packet output. - Added OAuth2/OpenID Connect provider connectivity status (GitLab, Google, Office365, OpenID) to the support packet diagnostics. - Added database diagnostics to the support packet, covering connection pool stats on every supported driver and PostgreSQL aggregate performance indicators (cache hit ratio, deadlocks, temp files, lock wait/idle activity, longest running query, and Posts autovacuum/dead tuples). Per-query timeouts and partial-failure handling keep packet generation resilient when individual pg_stat queries fail. From c264a71491a7affec5c72eb71ff4558ed2777319 Mon Sep 17 00:00:00 2001 From: Amy Blais <29708087+amyblais@users.noreply.github.com> Date: Tue, 23 Jun 2026 12:07:17 +0300 Subject: [PATCH 24/50] Update mattermost-v11-changelog.md --- source/product-overview/mattermost-v11-changelog.md | 1 + 1 file changed, 1 insertion(+) diff --git a/source/product-overview/mattermost-v11-changelog.md b/source/product-overview/mattermost-v11-changelog.md index 7e87caec5ae..a465d8563b3 100644 --- a/source/product-overview/mattermost-v11-changelog.md +++ b/source/product-overview/mattermost-v11-changelog.md @@ -30,6 +30,7 @@ Platform and OS scope reflects reported and tested environments and may not repr - Converted up to three classification-marking ``PropertyFields`` from type ``'select'`` to ``'rank'`` and backfilled rank ordering into their options; negligible performance impact. - Added ``rank``-type support to the ``AttributeView`` materialized view so ABAC policies can evaluate ranked property options; no performance impact expected on feature-flagged deployments. - Renamed ``system_classification`` and ``channel_classification`` entries in ``PropertyFields`` to the canonical name ``classification``; affects at most two rows with no performance impact. + - Added an ``expiresat`` column and partial index to ``useraccesstokens`` to support PAT expiry enforcement, with no large-table impact or downtime required. #### 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. From e540e9eb18e38ac6667dffb9271d553c638a6357 Mon Sep 17 00:00:00 2001 From: Amy Blais <29708087+amyblais@users.noreply.github.com> Date: Tue, 23 Jun 2026 12:49:30 +0300 Subject: [PATCH 25/50] Update mattermost-v11-changelog.md --- source/product-overview/mattermost-v11-changelog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/product-overview/mattermost-v11-changelog.md b/source/product-overview/mattermost-v11-changelog.md index a465d8563b3..bc0d6df654d 100644 --- a/source/product-overview/mattermost-v11-changelog.md +++ b/source/product-overview/mattermost-v11-changelog.md @@ -90,7 +90,7 @@ See [this blog post](https://mattermost.com/blog/mattermost-v11-9-0-is-now-avail - Removed legacy interactive dialog code path on webapp. - Added a channel-guard enforcement for scheduled posts and drafts. - Added Phase 8b, 8c, 8d, 8e, 8f, 8h, 12, and 12e of the ``mbe-tech-preview``. - - Added a ``mattermost db ping`` subcommand that waits for the database to become reachable, with configurable ``--timeout`` and ``--retry-interval`` flags. + - Added a ``mattermost db ping`` [subcommand](https://docs.mattermost.com/deployment-guide/reference-architecture/deployment-scenarios/air-gapped-deployment.html) that waits for the database to become reachable, with configurable ``--timeout`` and ``--retry-interval`` flags. - Added a new "rank" custom profile attribute type whose options carry an explicit ordering. System Admins can create and manage ranked attributes in the **System Console** and assign ranked values to users, enabling attribute-based access control policies that compare clearance- or classification-style attributes with ordinal operators (for example, "is at least Secret") instead of enumerating every qualifying value. - Added a new ``ClusterReliableFallbackLength`` metric with the total length in bytes of the ``SendBestEffort`` calls (UDP) that had to fallback to TCP because of the message length. - Made ``SendBestEffort`` cluster messages fall back to using TCP when their length is larger than a UDP datagram. From f40bd28448265745432334b6d2e509aa89133093 Mon Sep 17 00:00:00 2001 From: Amy Blais <29708087+amyblais@users.noreply.github.com> Date: Wed, 24 Jun 2026 15:18:51 +0300 Subject: [PATCH 26/50] Update source/product-overview/mattermost-v11-changelog.md Co-authored-by: Christopher Poile --- source/product-overview/mattermost-v11-changelog.md | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/source/product-overview/mattermost-v11-changelog.md b/source/product-overview/mattermost-v11-changelog.md index bc0d6df654d..ac93a3aac22 100644 --- a/source/product-overview/mattermost-v11-changelog.md +++ b/source/product-overview/mattermost-v11-changelog.md @@ -66,8 +66,15 @@ See [this blog post](https://mattermost.com/blog/mattermost-v11-9-0-is-now-avail #### Plugins/Integrations - Implemented clickable action buttons inside post markdown for bots, webhooks, and plugins. Integrations bind ``mmaction://`` markdown links to actions defined in a new ``mm_blocks_actions`` post property. - Added channel bookmark type ``board`` with an optional ``target_id``. The bookmarks API rejects creating, updating, or deleting board bookmarks but allows reordering them when the caller has bookmark order permission. - - Plugin registry's ``registerRightHandSidebarComponent`` now accepts an optional ``showPopout`` boolean (default ``true``) to hide the "Open in new window" button from the plugin right-hand side header. - + - Added a ``ChannelWillBeUpdated`` plugin hook. + - Added a ``ChannelWillBeRestored`` plugin hook. + - Added a ``ScheduledPostWillBeCreated`` plugin hook. + - Added a ``DraftWillBeUpserted`` plugin hook. + - Added a webapp hook ``registerChannelIconOverride``. + - Added a webapp hook ``registerChannelComposerBannerComponent``. + - Added a webapp hook ``registerPostHeaderComponent``. + - Added a webapp hook ``registerComposerPlaceholder``. + - Added a webapp hook ``registerProductSwitcherMenuItem``. #### Administration - Added [Azure Blob Storage](ocs.mattermost.com/administration-guide/configure/azure-blob-storage.html) support. - Added Azure Blob Storage as a selectable backend in the File Storage and Export Storage admin console panels. The S3 Test Connection control is now backend-agnostic and validates the active driver. From 31e71626bd515e607572723cd6bb08c90ea1fca1 Mon Sep 17 00:00:00 2001 From: Amy Blais <29708087+amyblais@users.noreply.github.com> Date: Wed, 24 Jun 2026 15:19:49 +0300 Subject: [PATCH 27/50] Update mattermost-v11-changelog.md --- source/product-overview/mattermost-v11-changelog.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/source/product-overview/mattermost-v11-changelog.md b/source/product-overview/mattermost-v11-changelog.md index ac93a3aac22..604af1ee073 100644 --- a/source/product-overview/mattermost-v11-changelog.md +++ b/source/product-overview/mattermost-v11-changelog.md @@ -59,13 +59,13 @@ See [this blog post](https://mattermost.com/blog/mattermost-v11-9-0-is-now-avail - Incoming webhooks now show information about the last time they were triggered. - Threads started by a webhook are no longer highlighted for the user who owns the webhook. - Added user setting "Auto-follow threads on channel-wide mentions" (Settings → Notifications). When disabled, @channel/@all/@here mentions no longer force thread membership; users still receive mention notifications but must manually follow the thread. - - Added a webapp hook ``registerChannelTypeOption``. - - Added a ``MessagesWillBeConsumedWithContext`` plugin hook. - Hardened the web app against crashes caused by components rendered by a plugin. #### Plugins/Integrations - Implemented clickable action buttons inside post markdown for bots, webhooks, and plugins. Integrations bind ``mmaction://`` markdown links to actions defined in a new ``mm_blocks_actions`` post property. - Added channel bookmark type ``board`` with an optional ``target_id``. The bookmarks API rejects creating, updating, or deleting board bookmarks but allows reordering them when the caller has bookmark order permission. + - Added a webapp hook ``registerChannelTypeOption``. + - Added a ``MessagesWillBeConsumedWithContext`` plugin hook. - Added a ``ChannelWillBeUpdated`` plugin hook. - Added a ``ChannelWillBeRestored`` plugin hook. - Added a ``ScheduledPostWillBeCreated`` plugin hook. @@ -75,6 +75,7 @@ See [this blog post](https://mattermost.com/blog/mattermost-v11-9-0-is-now-avail - Added a webapp hook ``registerPostHeaderComponent``. - Added a webapp hook ``registerComposerPlaceholder``. - Added a webapp hook ``registerProductSwitcherMenuItem``. + #### Administration - Added [Azure Blob Storage](ocs.mattermost.com/administration-guide/configure/azure-blob-storage.html) support. - Added Azure Blob Storage as a selectable backend in the File Storage and Export Storage admin console panels. The S3 Test Connection control is now backend-agnostic and validates the active driver. From a743ce59b61943e97a03e6a80937d5450506cb8e Mon Sep 17 00:00:00 2001 From: Amy Blais <29708087+amyblais@users.noreply.github.com> Date: Thu, 25 Jun 2026 09:10:17 +0300 Subject: [PATCH 28/50] Update mattermost-v11-changelog.md --- source/product-overview/mattermost-v11-changelog.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/source/product-overview/mattermost-v11-changelog.md b/source/product-overview/mattermost-v11-changelog.md index 604af1ee073..16be3c19261 100644 --- a/source/product-overview/mattermost-v11-changelog.md +++ b/source/product-overview/mattermost-v11-changelog.md @@ -48,7 +48,7 @@ See [this blog post](https://mattermost.com/blog/mattermost-v11-9-0-is-now-avail #### User Interface - Pre-packaged Playbooks plugin version [v2.10.0](https://github.com/mattermost/mattermost-plugin-playbooks/releases/tag/v2.10.0). - - Pre-packaged Agents plugin version [v2.4.0](https://github.com/mattermost/mattermost-plugin-agents/releases/tag/v2.4.0). + - Pre-packaged Agents plugin version [v2.4.1](https://github.com/mattermost/mattermost-plugin-agents/releases/tag/v2.4.1). - Pre-packaged [Calls plugin](https://docs.mattermost.com/end-user-guide/collaborate/make-calls.html) version [v1.12.0](https://github.com/mattermost/mattermost-plugin-calls/releases/tag/v1.12.0). - Pre-packaged Boards plugin version [v9.3.0](https://github.com/mattermost/mattermost-plugin-boards/releases/tag/v9.3.0). - Pre-packaged GitLab plugin version [v1.13.0](https://github.com/mattermost/mattermost-plugin-gitlab/releases/tag/v1.13.0). @@ -103,6 +103,7 @@ See [this blog post](https://mattermost.com/blog/mattermost-v11-9-0-is-now-avail - Added a new ``ClusterReliableFallbackLength`` metric with the total length in bytes of the ``SendBestEffort`` calls (UDP) that had to fallback to TCP because of the message length. - Made ``SendBestEffort`` cluster messages fall back to using TCP when their length is larger than a UDP datagram. - Added a license preview and diff view when uploading a new license in the System Console, allowing administrators to compare the new license's features with the current license before applying. + - Added a new ``mattermost_system_server_info`` Prometheus metric that exposes the server version and build hash as labels. #### Performance - Improved the performance of concurrent logins by removing a global mutex in favour of database serialization for computing login attempts. This, in turn, fixed the semantics of the ``MaximumLoginAttempts`` setting, which is now honored across all nodes in the cluster: instead of allowing ``n*MaximumLoginAttempts`` attempts, with ``n`` the number of nodes, we now allow ``MaximumLoginAttempts`` attempts regardless of the number of nodes. From 31358e65f71639274cefea875f74b7c6da31d269 Mon Sep 17 00:00:00 2001 From: Amy Blais <29708087+amyblais@users.noreply.github.com> Date: Thu, 25 Jun 2026 09:52:47 +0300 Subject: [PATCH 29/50] Update mattermost-v11-changelog.md --- source/product-overview/mattermost-v11-changelog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/product-overview/mattermost-v11-changelog.md b/source/product-overview/mattermost-v11-changelog.md index 16be3c19261..a8922652769 100644 --- a/source/product-overview/mattermost-v11-changelog.md +++ b/source/product-overview/mattermost-v11-changelog.md @@ -130,7 +130,7 @@ See [this blog post](https://mattermost.com/blog/mattermost-v11-9-0-is-now-avail - Fixed an issue where a channel member removed by an attribute-based access control (ABAC) access-rule change could still appear in the Channel Info Members list until a full page reload, even though the member count was correct. - Fixed an issue where "Mark as Unread" from the channel sidebar did nothing when the most recent message in the channel was a system join/leave message (reported on MacOS / Desktop App). - Fixed an issue where channel admins saw "Failed to load this channel's permission policy" on the Permissions Policy tab when the channel had no access control policy configured. - - Fixed custom emoji upload size and GIF frame limits. + - [Fixed](https://docs.mattermost.com/end-user-guide/collaborate/react-with-emojis-gifs.html) custom emoji upload size and GIF frame limits. - Fixed file moves and copies on S3 file stores failing for files larger than 5 GiB (for example, finalizing an ``mmctl`` import upload of an import archive over 5 GiB) by using a server-side multipart copy. - Fixed an issue where a bot user created by a plugin could become the first system admin on a fresh install (reported on webapp and browser). - Fixed an issue where a custom classification selection was lost if a user selected a preset from the classification preset options. From a6427393a02a954e85d36a35c7a44bb0e292d9a1 Mon Sep 17 00:00:00 2001 From: Amy Blais <29708087+amyblais@users.noreply.github.com> Date: Fri, 26 Jun 2026 08:50:10 +0300 Subject: [PATCH 30/50] Add 3 bug fix release notes to v11.9.0 changelog --- source/product-overview/mattermost-v11-changelog.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/source/product-overview/mattermost-v11-changelog.md b/source/product-overview/mattermost-v11-changelog.md index a8922652769..fdb16865ee9 100644 --- a/source/product-overview/mattermost-v11-changelog.md +++ b/source/product-overview/mattermost-v11-changelog.md @@ -137,6 +137,9 @@ See [this blog post](https://mattermost.com/blog/mattermost-v11-9-0-is-now-avail - Fixed validation for ``PUT /api/v4/users/{user_id}/auth`` to reject unknown auth services and prevent auth data on email/password users. - Fixed an issue that caused a flagged post to continue being visible for content reviewers until a refresh after deletion. - Preserved unknown permissions during migrations on downgrade. + - Fixed an issue where channels with a permission-only access control policy (and no membership policy) were incorrectly hidden from the channel picker in the Invite People → Invite as Guest flow. + - Tightened authorization on the OAuth deauthorization and personal access token management endpoints. + - Tightened validation when updating channel member roles via the API. ### API Changes - Added ``POST /file/test`` (``testFileStore``) API endpoint for backend-agnostic file store connection testing. From 2c26c9dcbbe4afab6ee47c728c0d11015a266b4c Mon Sep 17 00:00:00 2001 From: Amy Blais <29708087+amyblais@users.noreply.github.com> Date: Fri, 26 Jun 2026 16:58:14 +0300 Subject: [PATCH 31/50] Update source/product-overview/mattermost-v11-changelog.md Co-authored-by: Christopher Poile --- source/product-overview/mattermost-v11-changelog.md | 1 + 1 file changed, 1 insertion(+) diff --git a/source/product-overview/mattermost-v11-changelog.md b/source/product-overview/mattermost-v11-changelog.md index fdb16865ee9..ce729c461a2 100644 --- a/source/product-overview/mattermost-v11-changelog.md +++ b/source/product-overview/mattermost-v11-changelog.md @@ -75,6 +75,7 @@ See [this blog post](https://mattermost.com/blog/mattermost-v11-9-0-is-now-avail - Added a webapp hook ``registerPostHeaderComponent``. - Added a webapp hook ``registerComposerPlaceholder``. - Added a webapp hook ``registerProductSwitcherMenuItem``. + - Added `RegisterChannelGuard` and `UnregisterChannelGuard` plugin api methods. #### Administration - Added [Azure Blob Storage](ocs.mattermost.com/administration-guide/configure/azure-blob-storage.html) support. From d236be230c978cb03e08d5230ebc8cfb5e36cf44 Mon Sep 17 00:00:00 2001 From: Amy Blais <29708087+amyblais@users.noreply.github.com> Date: Fri, 26 Jun 2026 17:00:16 +0300 Subject: [PATCH 32/50] Update mattermost-v11-changelog.md --- source/product-overview/mattermost-v11-changelog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/product-overview/mattermost-v11-changelog.md b/source/product-overview/mattermost-v11-changelog.md index ce729c461a2..e21afcc7f0e 100644 --- a/source/product-overview/mattermost-v11-changelog.md +++ b/source/product-overview/mattermost-v11-changelog.md @@ -75,7 +75,7 @@ See [this blog post](https://mattermost.com/blog/mattermost-v11-9-0-is-now-avail - Added a webapp hook ``registerPostHeaderComponent``. - Added a webapp hook ``registerComposerPlaceholder``. - Added a webapp hook ``registerProductSwitcherMenuItem``. - - Added `RegisterChannelGuard` and `UnregisterChannelGuard` plugin api methods. + - Added ``RegisterChannelGuard`` and ``UnregisterChannelGuard`` plugin api methods. #### Administration - Added [Azure Blob Storage](ocs.mattermost.com/administration-guide/configure/azure-blob-storage.html) support. From d6691b02cfd5ab1bb0da307e5b027baac3fff4e1 Mon Sep 17 00:00:00 2001 From: Amy Blais <29708087+amyblais@users.noreply.github.com> Date: Mon, 29 Jun 2026 09:09:00 +0300 Subject: [PATCH 33/50] Add Jira plugin v4.7.1 release note to v11.9.0 changelog --- source/product-overview/mattermost-v11-changelog.md | 1 + 1 file changed, 1 insertion(+) diff --git a/source/product-overview/mattermost-v11-changelog.md b/source/product-overview/mattermost-v11-changelog.md index e21afcc7f0e..f731dd7010e 100644 --- a/source/product-overview/mattermost-v11-changelog.md +++ b/source/product-overview/mattermost-v11-changelog.md @@ -47,6 +47,7 @@ New setting options were added to ``config.json``. Below is a list of the additi See [this blog post](https://mattermost.com/blog/mattermost-v11-9-0-is-now-available/) on the highlights in our latest release. #### User Interface + - Prepackage Jira plugin version [v4.7.1](https://github.com/mattermost/mattermost-plugin-jira/releases/tag/v4.7.1). - Pre-packaged Playbooks plugin version [v2.10.0](https://github.com/mattermost/mattermost-plugin-playbooks/releases/tag/v2.10.0). - Pre-packaged Agents plugin version [v2.4.1](https://github.com/mattermost/mattermost-plugin-agents/releases/tag/v2.4.1). - Pre-packaged [Calls plugin](https://docs.mattermost.com/end-user-guide/collaborate/make-calls.html) version [v1.12.0](https://github.com/mattermost/mattermost-plugin-calls/releases/tag/v1.12.0). From 3bce3a709f82f27b13eacb82e9c7db9e924ed42e Mon Sep 17 00:00:00 2001 From: Amy Blais <29708087+amyblais@users.noreply.github.com> Date: Mon, 29 Jun 2026 09:10:54 +0300 Subject: [PATCH 34/50] Fix: use Pre-packaged for Jira plugin v4.7.1 release note --- source/product-overview/mattermost-v11-changelog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/product-overview/mattermost-v11-changelog.md b/source/product-overview/mattermost-v11-changelog.md index f731dd7010e..61f5fe80aca 100644 --- a/source/product-overview/mattermost-v11-changelog.md +++ b/source/product-overview/mattermost-v11-changelog.md @@ -47,7 +47,7 @@ New setting options were added to ``config.json``. Below is a list of the additi See [this blog post](https://mattermost.com/blog/mattermost-v11-9-0-is-now-available/) on the highlights in our latest release. #### User Interface - - Prepackage Jira plugin version [v4.7.1](https://github.com/mattermost/mattermost-plugin-jira/releases/tag/v4.7.1). + - Pre-packaged Jira plugin version [v4.7.1](https://github.com/mattermost/mattermost-plugin-jira/releases/tag/v4.7.1). - Pre-packaged Playbooks plugin version [v2.10.0](https://github.com/mattermost/mattermost-plugin-playbooks/releases/tag/v2.10.0). - Pre-packaged Agents plugin version [v2.4.1](https://github.com/mattermost/mattermost-plugin-agents/releases/tag/v2.4.1). - Pre-packaged [Calls plugin](https://docs.mattermost.com/end-user-guide/collaborate/make-calls.html) version [v1.12.0](https://github.com/mattermost/mattermost-plugin-calls/releases/tag/v1.12.0). From b888fa072610eb9dc72fd50e838a0f9a30977877 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pablo=20V=C3=A9lez?= Date: Mon, 29 Jun 2026 14:47:27 +0200 Subject: [PATCH 35/50] Add attribute value masking information to 11.8.0 changelog docs (#9076) * Add attribute value masking information to 11.8.0 changelog docs * move changes under v11.9 section --- source/product-overview/mattermost-v11-changelog.md | 1 + 1 file changed, 1 insertion(+) diff --git a/source/product-overview/mattermost-v11-changelog.md b/source/product-overview/mattermost-v11-changelog.md index 61f5fe80aca..45a794f65be 100644 --- a/source/product-overview/mattermost-v11-changelog.md +++ b/source/product-overview/mattermost-v11-changelog.md @@ -95,6 +95,7 @@ See [this blog post](https://mattermost.com/blog/mattermost-v11-9-0-is-now-avail - Enabled CJK (Chinese, Japanese, Korean) search by default for PostgreSQL. - Added support for OpenSearch v3, while continuing to support OpenSearch v2. - User attributes can now be synced with AD/LDAP or SAML whether they are user-editable or admin-managed. When an attribute is synced, the "Editable by users" toggle is disabled; remove the sync link to change it again. + - Added attribute value masking for access control policies: admins who don't hold specific attribute values see a masked placeholder (``--------``) instead of the raw value, with affected rule rows set to read-only and save/delete actions disabled. Applies to the table editor, CEL editor, and team settings modal. Requires Enterprise Advanced license and ``AttributeValueMasking`` feature flag. - Added support for iOS Calls ring for Direct/Group Message channels. - Expanded session attribute collection to include values provided by Desktop App and Mobile clients. - Removed legacy interactive dialog code path on webapp. From a84cf17acb0d9957f2d851d26626caffbaef7c38 Mon Sep 17 00:00:00 2001 From: Amy Blais <29708087+amyblais@users.noreply.github.com> Date: Mon, 29 Jun 2026 15:50:09 +0300 Subject: [PATCH 36/50] Add inline link for attribute value masking in v11.9 changelog --- source/product-overview/mattermost-v11-changelog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/product-overview/mattermost-v11-changelog.md b/source/product-overview/mattermost-v11-changelog.md index 45a794f65be..969bb3d51a6 100644 --- a/source/product-overview/mattermost-v11-changelog.md +++ b/source/product-overview/mattermost-v11-changelog.md @@ -95,7 +95,7 @@ See [this blog post](https://mattermost.com/blog/mattermost-v11-9-0-is-now-avail - Enabled CJK (Chinese, Japanese, Korean) search by default for PostgreSQL. - Added support for OpenSearch v3, while continuing to support OpenSearch v2. - User attributes can now be synced with AD/LDAP or SAML whether they are user-editable or admin-managed. When an attribute is synced, the "Editable by users" toggle is disabled; remove the sync link to change it again. - - Added attribute value masking for access control policies: admins who don't hold specific attribute values see a masked placeholder (``--------``) instead of the raw value, with affected rule rows set to read-only and save/delete actions disabled. Applies to the table editor, CEL editor, and team settings modal. Requires Enterprise Advanced license and ``AttributeValueMasking`` feature flag. + - Added [attribute value masking](http://docs.mattermost.com/administration-guide/manage/admin/abac-system-wide-policies.html) for access control policies: admins who don't hold specific attribute values see a masked placeholder (``--------``) instead of the raw value, with affected rule rows set to read-only and save/delete actions disabled. Applies to the table editor, CEL editor, and team settings modal. Requires Enterprise Advanced license and ``AttributeValueMasking`` feature flag. - Added support for iOS Calls ring for Direct/Group Message channels. - Expanded session attribute collection to include values provided by Desktop App and Mobile clients. - Removed legacy interactive dialog code path on webapp. From 99aead7fc1e678d47f433ea3b0eff35e2227cee1 Mon Sep 17 00:00:00 2001 From: Amy Blais <29708087+amyblais@users.noreply.github.com> Date: Tue, 30 Jun 2026 08:59:55 +0300 Subject: [PATCH 37/50] Update Agents plugin version from v2.4.1 to v2.4.2 in v11.9 changelog --- source/product-overview/mattermost-v11-changelog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/product-overview/mattermost-v11-changelog.md b/source/product-overview/mattermost-v11-changelog.md index 969bb3d51a6..97252c85a2c 100644 --- a/source/product-overview/mattermost-v11-changelog.md +++ b/source/product-overview/mattermost-v11-changelog.md @@ -49,7 +49,7 @@ See [this blog post](https://mattermost.com/blog/mattermost-v11-9-0-is-now-avail #### User Interface - Pre-packaged Jira plugin version [v4.7.1](https://github.com/mattermost/mattermost-plugin-jira/releases/tag/v4.7.1). - Pre-packaged Playbooks plugin version [v2.10.0](https://github.com/mattermost/mattermost-plugin-playbooks/releases/tag/v2.10.0). - - Pre-packaged Agents plugin version [v2.4.1](https://github.com/mattermost/mattermost-plugin-agents/releases/tag/v2.4.1). + - Pre-packaged Agents plugin version [v2.4.2](https://github.com/mattermost/mattermost-plugin-agents/releases/tag/v2.4.2). - Pre-packaged [Calls plugin](https://docs.mattermost.com/end-user-guide/collaborate/make-calls.html) version [v1.12.0](https://github.com/mattermost/mattermost-plugin-calls/releases/tag/v1.12.0). - Pre-packaged Boards plugin version [v9.3.0](https://github.com/mattermost/mattermost-plugin-boards/releases/tag/v9.3.0). - Pre-packaged GitLab plugin version [v1.13.0](https://github.com/mattermost/mattermost-plugin-gitlab/releases/tag/v1.13.0). From c0590d89337867978554ffa388e8b4595eb85491 Mon Sep 17 00:00:00 2001 From: Amy Blais <29708087+amyblais@users.noreply.github.com> Date: Tue, 30 Jun 2026 11:11:18 +0300 Subject: [PATCH 38/50] Add Global Relay crash fix to v11.9 Bug Fixes section --- source/product-overview/mattermost-v11-changelog.md | 1 + 1 file changed, 1 insertion(+) diff --git a/source/product-overview/mattermost-v11-changelog.md b/source/product-overview/mattermost-v11-changelog.md index 97252c85a2c..da6d2e1c2a4 100644 --- a/source/product-overview/mattermost-v11-changelog.md +++ b/source/product-overview/mattermost-v11-changelog.md @@ -113,6 +113,7 @@ See [this blog post](https://mattermost.com/blog/mattermost-v11-9-0-is-now-avail - Reduced cluster send error logs from oversized ``plugin_statuses_changed`` WebSocket events. ### Bug Fixes + - Fixed a bug where a file read failure while building a Global Relay compliance export could crash the server. - Fixed display of long usernames in the user account menu. - Fixed a white flash that appeared in the global header and left sidebar when switching between products (Playbooks/Boards) and Channels. - Fixed an issue where the AI actions toolbar separator was shown when no AI actions button was available. From a4e4ed697d2b3d8e50f033e7aca77a7fe4c03805 Mon Sep 17 00:00:00 2001 From: Amy Blais <29708087+amyblais@users.noreply.github.com> Date: Tue, 30 Jun 2026 11:12:39 +0300 Subject: [PATCH 39/50] Add Global Relay fix to v11.9 Bug Fixes with correct wording --- source/product-overview/mattermost-v11-changelog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/product-overview/mattermost-v11-changelog.md b/source/product-overview/mattermost-v11-changelog.md index da6d2e1c2a4..36e31cd4eeb 100644 --- a/source/product-overview/mattermost-v11-changelog.md +++ b/source/product-overview/mattermost-v11-changelog.md @@ -113,7 +113,7 @@ See [this blog post](https://mattermost.com/blog/mattermost-v11-9-0-is-now-avail - Reduced cluster send error logs from oversized ``plugin_statuses_changed`` WebSocket events. ### Bug Fixes - - Fixed a bug where a file read failure while building a Global Relay compliance export could crash the server. + - Fixed an issue where a file read failure while building a Global Relay compliance export could crash the server. - Fixed display of long usernames in the user account menu. - Fixed a white flash that appeared in the global header and left sidebar when switching between products (Playbooks/Boards) and Channels. - Fixed an issue where the AI actions toolbar separator was shown when no AI actions button was available. From e7affe0cf1922f9fb32a2c5b4d1e920b8c894e89 Mon Sep 17 00:00:00 2001 From: Amy Blais <29708087+amyblais@users.noreply.github.com> Date: Tue, 30 Jun 2026 13:10:27 +0300 Subject: [PATCH 40/50] Add inline link for metric on line 106 --- source/product-overview/mattermost-v11-changelog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/product-overview/mattermost-v11-changelog.md b/source/product-overview/mattermost-v11-changelog.md index 36e31cd4eeb..65bd7f0cac7 100644 --- a/source/product-overview/mattermost-v11-changelog.md +++ b/source/product-overview/mattermost-v11-changelog.md @@ -103,7 +103,7 @@ See [this blog post](https://mattermost.com/blog/mattermost-v11-9-0-is-now-avail - Added Phase 8b, 8c, 8d, 8e, 8f, 8h, 12, and 12e of the ``mbe-tech-preview``. - Added a ``mattermost db ping`` [subcommand](https://docs.mattermost.com/deployment-guide/reference-architecture/deployment-scenarios/air-gapped-deployment.html) that waits for the database to become reachable, with configurable ``--timeout`` and ``--retry-interval`` flags. - Added a new "rank" custom profile attribute type whose options carry an explicit ordering. System Admins can create and manage ranked attributes in the **System Console** and assign ranked values to users, enabling attribute-based access control policies that compare clearance- or classification-style attributes with ordinal operators (for example, "is at least Secret") instead of enumerating every qualifying value. - - Added a new ``ClusterReliableFallbackLength`` metric with the total length in bytes of the ``SendBestEffort`` calls (UDP) that had to fallback to TCP because of the message length. + - Added a new ``ClusterReliableFallbackLength`` [metric](https://docs.mattermost.com/administration-guide/scale/performance-monitoring-metrics.html) with the total length in bytes of the ``SendBestEffort`` calls (UDP) that had to fallback to TCP because of the message length. - Made ``SendBestEffort`` cluster messages fall back to using TCP when their length is larger than a UDP datagram. - Added a license preview and diff view when uploading a new license in the System Console, allowing administrators to compare the new license's features with the current license before applying. - Added a new ``mattermost_system_server_info`` Prometheus metric that exposes the server version and build hash as labels. From 9f7d8f612efc5f936accfe9c383f6c8485255f96 Mon Sep 17 00:00:00 2001 From: Amy Blais <29708087+amyblais@users.noreply.github.com> Date: Wed, 1 Jul 2026 10:01:15 +0300 Subject: [PATCH 41/50] Update v11.9 changelog: bug fix, feature flag note, Calls v1.12.1 --- source/product-overview/mattermost-v11-changelog.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/source/product-overview/mattermost-v11-changelog.md b/source/product-overview/mattermost-v11-changelog.md index 65bd7f0cac7..26fff165d59 100644 --- a/source/product-overview/mattermost-v11-changelog.md +++ b/source/product-overview/mattermost-v11-changelog.md @@ -50,7 +50,7 @@ See [this blog post](https://mattermost.com/blog/mattermost-v11-9-0-is-now-avail - Pre-packaged Jira plugin version [v4.7.1](https://github.com/mattermost/mattermost-plugin-jira/releases/tag/v4.7.1). - Pre-packaged Playbooks plugin version [v2.10.0](https://github.com/mattermost/mattermost-plugin-playbooks/releases/tag/v2.10.0). - Pre-packaged Agents plugin version [v2.4.2](https://github.com/mattermost/mattermost-plugin-agents/releases/tag/v2.4.2). - - Pre-packaged [Calls plugin](https://docs.mattermost.com/end-user-guide/collaborate/make-calls.html) version [v1.12.0](https://github.com/mattermost/mattermost-plugin-calls/releases/tag/v1.12.0). + - Pre-packaged [Calls plugin](https://docs.mattermost.com/end-user-guide/collaborate/make-calls.html) version [v1.12.1](https://github.com/mattermost/mattermost-plugin-calls/releases/tag/v1.12.1). - Pre-packaged Boards plugin version [v9.3.0](https://github.com/mattermost/mattermost-plugin-boards/releases/tag/v9.3.0). - Pre-packaged GitLab plugin version [v1.13.0](https://github.com/mattermost/mattermost-plugin-gitlab/releases/tag/v1.13.0). - Added zoom and pan support to the image file preview: use the scroll wheel to zoom at the cursor, click-and-drag to pan, and +/-/0 keyboard shortcuts (reported on webapp). @@ -107,6 +107,7 @@ See [this blog post](https://mattermost.com/blog/mattermost-v11-9-0-is-now-avail - Made ``SendBestEffort`` cluster messages fall back to using TCP when their length is larger than a UDP datagram. - Added a license preview and diff view when uploading a new license in the System Console, allowing administrators to compare the new license's features with the current license before applying. - Added a new ``mattermost_system_server_info`` Prometheus metric that exposes the server version and build hash as labels. + - Enabled the AttributeValueMasking, PermissionPolicies, ChannelPermissionPolicies, PolicySimulation and PropertyFieldRank feature flags by default. #### Performance - Improved the performance of concurrent logins by removing a global mutex in favour of database serialization for computing login attempts. This, in turn, fixed the semantics of the ``MaximumLoginAttempts`` setting, which is now honored across all nodes in the cluster: instead of allowing ``n*MaximumLoginAttempts`` attempts, with ``n`` the number of nodes, we now allow ``MaximumLoginAttempts`` attempts regardless of the number of nodes. @@ -144,6 +145,7 @@ See [this blog post](https://mattermost.com/blog/mattermost-v11-9-0-is-now-avail - Fixed an issue where channels with a permission-only access control policy (and no membership policy) were incorrectly hidden from the channel picker in the Invite People → Invite as Guest flow. - Tightened authorization on the OAuth deauthorization and personal access token management endpoints. - Tightened validation when updating channel member roles via the API. + - Fixed an issue where the Channel Settings Permissions Policy rule editor cleared all entered fields (role, conditions, and permissions) when a validation error was shown on save. ### API Changes - Added ``POST /file/test`` (``testFileStore``) API endpoint for backend-agnostic file store connection testing. From 1c01844736d6c709449b5f3905d4728a7799be4f Mon Sep 17 00:00:00 2001 From: Amy Blais <29708087+amyblais@users.noreply.github.com> Date: Wed, 1 Jul 2026 10:29:11 +0300 Subject: [PATCH 42/50] Fix formatting: backticks for feature flags, bold for Channel Settings Permissions Policy --- source/product-overview/mattermost-v11-changelog.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/product-overview/mattermost-v11-changelog.md b/source/product-overview/mattermost-v11-changelog.md index 26fff165d59..48a02b98d72 100644 --- a/source/product-overview/mattermost-v11-changelog.md +++ b/source/product-overview/mattermost-v11-changelog.md @@ -107,7 +107,7 @@ See [this blog post](https://mattermost.com/blog/mattermost-v11-9-0-is-now-avail - Made ``SendBestEffort`` cluster messages fall back to using TCP when their length is larger than a UDP datagram. - Added a license preview and diff view when uploading a new license in the System Console, allowing administrators to compare the new license's features with the current license before applying. - Added a new ``mattermost_system_server_info`` Prometheus metric that exposes the server version and build hash as labels. - - Enabled the AttributeValueMasking, PermissionPolicies, ChannelPermissionPolicies, PolicySimulation and PropertyFieldRank feature flags by default. + - Enabled the ``AttributeValueMasking``, ``PermissionPolicies``, ``ChannelPermissionPolicies``, ``PolicySimulation`` and ``PropertyFieldRank`` feature flags by default. #### Performance - Improved the performance of concurrent logins by removing a global mutex in favour of database serialization for computing login attempts. This, in turn, fixed the semantics of the ``MaximumLoginAttempts`` setting, which is now honored across all nodes in the cluster: instead of allowing ``n*MaximumLoginAttempts`` attempts, with ``n`` the number of nodes, we now allow ``MaximumLoginAttempts`` attempts regardless of the number of nodes. @@ -145,7 +145,7 @@ See [this blog post](https://mattermost.com/blog/mattermost-v11-9-0-is-now-avail - Fixed an issue where channels with a permission-only access control policy (and no membership policy) were incorrectly hidden from the channel picker in the Invite People → Invite as Guest flow. - Tightened authorization on the OAuth deauthorization and personal access token management endpoints. - Tightened validation when updating channel member roles via the API. - - Fixed an issue where the Channel Settings Permissions Policy rule editor cleared all entered fields (role, conditions, and permissions) when a validation error was shown on save. + - Fixed an issue where the **Channel Settings Permissions Policy** rule editor cleared all entered fields (role, conditions, and permissions) when a validation error was shown on save. ### API Changes - Added ``POST /file/test`` (``testFileStore``) API endpoint for backend-agnostic file store connection testing. From f171c649d22a81ca4601eec20503544c9c961fc4 Mon Sep 17 00:00:00 2001 From: Amy Blais <29708087+amyblais@users.noreply.github.com> Date: Wed, 1 Jul 2026 10:40:39 +0300 Subject: [PATCH 43/50] Update source/product-overview/mattermost-v11-changelog.md Co-authored-by: Maria A Nunez --- source/product-overview/mattermost-v11-changelog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/product-overview/mattermost-v11-changelog.md b/source/product-overview/mattermost-v11-changelog.md index 48a02b98d72..01586a1d66a 100644 --- a/source/product-overview/mattermost-v11-changelog.md +++ b/source/product-overview/mattermost-v11-changelog.md @@ -95,7 +95,7 @@ See [this blog post](https://mattermost.com/blog/mattermost-v11-9-0-is-now-avail - Enabled CJK (Chinese, Japanese, Korean) search by default for PostgreSQL. - Added support for OpenSearch v3, while continuing to support OpenSearch v2. - User attributes can now be synced with AD/LDAP or SAML whether they are user-editable or admin-managed. When an attribute is synced, the "Editable by users" toggle is disabled; remove the sync link to change it again. - - Added [attribute value masking](http://docs.mattermost.com/administration-guide/manage/admin/abac-system-wide-policies.html) for access control policies: admins who don't hold specific attribute values see a masked placeholder (``--------``) instead of the raw value, with affected rule rows set to read-only and save/delete actions disabled. Applies to the table editor, CEL editor, and team settings modal. Requires Enterprise Advanced license and ``AttributeValueMasking`` feature flag. + - Added [attribute value masking](http://docs.mattermost.com/administration-guide/manage/admin/abac-system-wide-policies.html) for access control policies: admins who don't hold specific attribute values see a masked placeholder (``--------``) instead of the raw value, with affected rule rows set to read-only and save/delete actions disabled. Applies to the table editor, CEL editor, and team settings modal. Requires Enterprise Advanced license. - Added support for iOS Calls ring for Direct/Group Message channels. - Expanded session attribute collection to include values provided by Desktop App and Mobile clients. - Removed legacy interactive dialog code path on webapp. From 06cb1026e1a7b9fd73ca0b2c754e8f3a9a3c7f6f Mon Sep 17 00:00:00 2001 From: Amy Blais <29708087+amyblais@users.noreply.github.com> Date: Thu, 2 Jul 2026 09:34:30 +0300 Subject: [PATCH 44/50] Update v11.9 changelog: replace feature flag line 110 with ChannelPermissionPolicies/PolicySimulation description --- source/product-overview/mattermost-v11-changelog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/product-overview/mattermost-v11-changelog.md b/source/product-overview/mattermost-v11-changelog.md index 01586a1d66a..4ccd8e88b38 100644 --- a/source/product-overview/mattermost-v11-changelog.md +++ b/source/product-overview/mattermost-v11-changelog.md @@ -107,7 +107,7 @@ See [this blog post](https://mattermost.com/blog/mattermost-v11-9-0-is-now-avail - Made ``SendBestEffort`` cluster messages fall back to using TCP when their length is larger than a UDP datagram. - Added a license preview and diff view when uploading a new license in the System Console, allowing administrators to compare the new license's features with the current license before applying. - Added a new ``mattermost_system_server_info`` Prometheus metric that exposes the server version and build hash as labels. - - Enabled the ``AttributeValueMasking``, ``PermissionPolicies``, ``ChannelPermissionPolicies``, ``PolicySimulation`` and ``PropertyFieldRank`` feature flags by default. + - Enabled support for permission-action rules (file upload, file download) on channel-scope access control policies, with a new "Simulate access" modal in System Console and Channel Settings that previews per-user, per-action decisions before saving. Requires the Enterprise Advanced license. #### Performance - Improved the performance of concurrent logins by removing a global mutex in favour of database serialization for computing login attempts. This, in turn, fixed the semantics of the ``MaximumLoginAttempts`` setting, which is now honored across all nodes in the cluster: instead of allowing ``n*MaximumLoginAttempts`` attempts, with ``n`` the number of nodes, we now allow ``MaximumLoginAttempts`` attempts regardless of the number of nodes. From b254c75d666d4a7c22db522f513fb1b0e82598a8 Mon Sep 17 00:00:00 2001 From: Amy Blais <29708087+amyblais@users.noreply.github.com> Date: Thu, 2 Jul 2026 09:45:21 +0300 Subject: [PATCH 45/50] Add PropertyGroups and channelbookmarks schema changes to v11.9 changelog --- source/product-overview/mattermost-v11-changelog.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/source/product-overview/mattermost-v11-changelog.md b/source/product-overview/mattermost-v11-changelog.md index 4ccd8e88b38..888977c6328 100644 --- a/source/product-overview/mattermost-v11-changelog.md +++ b/source/product-overview/mattermost-v11-changelog.md @@ -31,6 +31,8 @@ Platform and OS scope reflects reported and tested environments and may not repr - Added ``rank``-type support to the ``AttributeView`` materialized view so ABAC policies can evaluate ranked property options; no performance impact expected on feature-flagged deployments. - Renamed ``system_classification`` and ``channel_classification`` entries in ``PropertyFields`` to the canonical name ``classification``; affects at most two rows with no performance impact. - Added an ``expiresat`` column and partial index to ``useraccesstokens`` to support PAT expiry enforcement, with no large-table impact or downtime required. + - Added a ``SchemaVersion`` column to ``PropertyGroups`` with no large-table impact or downtime required. + - Added a ``targetid`` column and ``idx_channelbookmarks_type_targetid`` index to ``channelbookmarks`` to support a new ``board`` bookmark type, with no impact to existing bookmarks or downtime required. #### 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. From eed3333ffd70e8dbada1d8e0ee1226e051a31382 Mon Sep 17 00:00:00 2001 From: Amy Blais <29708087+amyblais@users.noreply.github.com> Date: Fri, 3 Jul 2026 09:11:14 +0300 Subject: [PATCH 46/50] Update mattermost-v11-changelog.md --- source/product-overview/mattermost-v11-changelog.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/source/product-overview/mattermost-v11-changelog.md b/source/product-overview/mattermost-v11-changelog.md index 888977c6328..6d1ebceafb0 100644 --- a/source/product-overview/mattermost-v11-changelog.md +++ b/source/product-overview/mattermost-v11-changelog.md @@ -55,6 +55,7 @@ See [this blog post](https://mattermost.com/blog/mattermost-v11-9-0-is-now-avail - Pre-packaged [Calls plugin](https://docs.mattermost.com/end-user-guide/collaborate/make-calls.html) version [v1.12.1](https://github.com/mattermost/mattermost-plugin-calls/releases/tag/v1.12.1). - Pre-packaged Boards plugin version [v9.3.0](https://github.com/mattermost/mattermost-plugin-boards/releases/tag/v9.3.0). - Pre-packaged GitLab plugin version [v1.13.0](https://github.com/mattermost/mattermost-plugin-gitlab/releases/tag/v1.13.0). + - Pre-packaged Boards plugin version [v9.3.0](https://github.com/mattermost/mattermost-plugin-boards/releases/tag/v9.3.0). - Added zoom and pan support to the image file preview: use the scroll wheel to zoom at the cursor, click-and-drag to pan, and +/-/0 keyboard shortcuts (reported on webapp). - Added a toast notification for plugin-rejected file uploads, consistent with the existing notification for rejected downloads. - Added a Data Spillage Handling feature discovery page in the System Console for lower-tier licenses. @@ -162,7 +163,7 @@ See [this blog post](https://mattermost.com/blog/mattermost-v11-9-0-is-now-avail - Added ``AuditEventRejectExpiredUserAccessToken`` audit log event. ### Go Version - - v11.9 is built with Go ``v1.26.3``. + - v11.9 is built with Go ``v1.26.4``. (release-v11.8-feature-release)= ## Release v11.8 - [Feature Release](https://docs.mattermost.com/product-overview/release-policy.html#release-types) From 398c9efce83007cdc35e37292f9152b537c710d7 Mon Sep 17 00:00:00 2001 From: Amy Blais <29708087+amyblais@users.noreply.github.com> Date: Fri, 3 Jul 2026 15:06:53 +0300 Subject: [PATCH 47/50] Add ChannelGuards schema change to v11.9 changelog --- source/product-overview/mattermost-v11-changelog.md | 1 + 1 file changed, 1 insertion(+) diff --git a/source/product-overview/mattermost-v11-changelog.md b/source/product-overview/mattermost-v11-changelog.md index 6d1ebceafb0..784a10de580 100644 --- a/source/product-overview/mattermost-v11-changelog.md +++ b/source/product-overview/mattermost-v11-changelog.md @@ -33,6 +33,7 @@ Platform and OS scope reflects reported and tested environments and may not repr - Added an ``expiresat`` column and partial index to ``useraccesstokens`` to support PAT expiry enforcement, with no large-table impact or downtime required. - Added a ``SchemaVersion`` column to ``PropertyGroups`` with no large-table impact or downtime required. - Added a ``targetid`` column and ``idx_channelbookmarks_type_targetid`` index to ``channelbookmarks`` to support a new ``board`` bookmark type, with no impact to existing bookmarks or downtime required. + - Added the ``ChannelGuards`` table and a ``PluginId`` index to support plugin-exclusive channel ownership, with no downtime or backwards-compatibility impact. #### 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. From d409772849198c5bef9e4eea253736aaec40afe9 Mon Sep 17 00:00:00 2001 From: Amy Blais <29708087+amyblais@users.noreply.github.com> Date: Mon, 6 Jul 2026 08:55:24 +0300 Subject: [PATCH 48/50] Add stale config refresh fix to v11.9 changelog --- source/product-overview/mattermost-v11-changelog.md | 1 + 1 file changed, 1 insertion(+) diff --git a/source/product-overview/mattermost-v11-changelog.md b/source/product-overview/mattermost-v11-changelog.md index 784a10de580..416fc2dc755 100644 --- a/source/product-overview/mattermost-v11-changelog.md +++ b/source/product-overview/mattermost-v11-changelog.md @@ -150,6 +150,7 @@ See [this blog post](https://mattermost.com/blog/mattermost-v11-9-0-is-now-avail - Tightened authorization on the OAuth deauthorization and personal access token management endpoints. - Tightened validation when updating channel member roles via the API. - Fixed an issue where the **Channel Settings Permissions Policy** rule editor cleared all entered fields (role, conditions, and permissions) when a validation error was shown on save. + - Avoid saving stale configurations from the system console by refreshing a system admin's snapshot of the config whenever it changes. ### API Changes - Added ``POST /file/test`` (``testFileStore``) API endpoint for backend-agnostic file store connection testing. From 8396a750e2ac8c0c8343be3ee7fee729f36826ee Mon Sep 17 00:00:00 2001 From: Amy Blais <29708087+amyblais@users.noreply.github.com> Date: Mon, 6 Jul 2026 08:55:58 +0300 Subject: [PATCH 49/50] Update mattermost-v11-changelog.md --- source/product-overview/mattermost-v11-changelog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/product-overview/mattermost-v11-changelog.md b/source/product-overview/mattermost-v11-changelog.md index 416fc2dc755..86900051456 100644 --- a/source/product-overview/mattermost-v11-changelog.md +++ b/source/product-overview/mattermost-v11-changelog.md @@ -150,7 +150,7 @@ See [this blog post](https://mattermost.com/blog/mattermost-v11-9-0-is-now-avail - Tightened authorization on the OAuth deauthorization and personal access token management endpoints. - Tightened validation when updating channel member roles via the API. - Fixed an issue where the **Channel Settings Permissions Policy** rule editor cleared all entered fields (role, conditions, and permissions) when a validation error was shown on save. - - Avoid saving stale configurations from the system console by refreshing a system admin's snapshot of the config whenever it changes. + - Avoided saving stale configurations from the System Console by refreshing a system admin's snapshot of the configuration whenever it changed. ### API Changes - Added ``POST /file/test`` (``testFileStore``) API endpoint for backend-agnostic file store connection testing. From ab7499a57b6a6d91113c449b1c4f33953beaf1f4 Mon Sep 17 00:00:00 2001 From: Amy Blais <29708087+amyblais@users.noreply.github.com> Date: Mon, 6 Jul 2026 09:02:18 +0300 Subject: [PATCH 50/50] Add Bot Accounts pagination fix to v11.9 changelog --- source/product-overview/mattermost-v11-changelog.md | 1 + 1 file changed, 1 insertion(+) diff --git a/source/product-overview/mattermost-v11-changelog.md b/source/product-overview/mattermost-v11-changelog.md index 86900051456..31f55c33362 100644 --- a/source/product-overview/mattermost-v11-changelog.md +++ b/source/product-overview/mattermost-v11-changelog.md @@ -151,6 +151,7 @@ See [this blog post](https://mattermost.com/blog/mattermost-v11-9-0-is-now-avail - Tightened validation when updating channel member roles via the API. - Fixed an issue where the **Channel Settings Permissions Policy** rule editor cleared all entered fields (role, conditions, and permissions) when a validation error was shown on save. - Avoided saving stale configurations from the System Console by refreshing a system admin's snapshot of the configuration whenever it changed. + - Fixed an issue where the Bot Accounts page loaded at most 200 bots, hiding newer bots from the list and search on servers with more than 200 bot accounts. ### API Changes - Added ``POST /file/test`` (``testFileStore``) API endpoint for backend-agnostic file store connection testing.