From 68211635267ea61acc649633baef960f3ff68fd1 Mon Sep 17 00:00:00 2001 From: Amy Blais <29708087+amyblais@users.noreply.github.com> Date: Tue, 7 Jul 2026 11:49:46 +0300 Subject: [PATCH 01/28] Bump v10.11 download link to v10.11.22 --- source/product-overview/mattermost-server-releases.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/product-overview/mattermost-server-releases.md b/source/product-overview/mattermost-server-releases.md index 4a3c9d9078e..9b804e59a18 100644 --- a/source/product-overview/mattermost-server-releases.md +++ b/source/product-overview/mattermost-server-releases.md @@ -29,7 +29,7 @@ Mattermost releases a new server version on the 16th of each month in [binary fo | v11.1 [Download](https://releases.mattermost.com/11.1.3/mattermost-11.1.3-linux-amd64.tar.gz) \| {ref}`Changelog ` \|
SBOM
| 2025-11-14 | 2026-02-15 | | v11.0 [Download](https://releases.mattermost.com/11.0.7/mattermost-11.0.7-linux-amd64.tar.gz) \| {ref}`Changelog ` \|
SBOM
| 2025-10-16 | 2026-01-15 | | v10.12 [Download](https://releases.mattermost.com/10.12.4/mattermost-10.12.4-linux-amd64.tar.gz) \| {ref}`Changelog ` \|
SBOM
| 2025-09-16 | 2025-12-15 | -| v10.11 [Download](https://releases.mattermost.com/10.11.21/mattermost-10.11.21-linux-amd64.tar.gz) \| {ref}`Changelog ` \|
SBOM
| 2025-08-15 | 2026-08-15 {ref}`EXTENDED ` | +| v10.11 [Download](https://releases.mattermost.com/10.11.22/mattermost-10.11.22-linux-amd64.tar.gz) \| {ref}`Changelog ` \|
SBOM
| 2025-08-15 | 2026-08-15 {ref}`EXTENDED ` | | v10.10 [Download](https://releases.mattermost.com/10.10.3/mattermost-10.10.3-linux-amd64.tar.gz) \| {ref}`Changelog ` \|
SBOM
| 2025-07-16 | 2025-10-15 | | v10.9 [Download](https://releases.mattermost.com/10.9.5/mattermost-10.9.5-linux-amd64.tar.gz) \| {ref}`Changelog ` \|
SBOM
| 2025-06-16 | 2025-09-15 | | v10.8 [Download](https://releases.mattermost.com/10.8.4/mattermost-10.8.4-linux-amd64.tar.gz) \| {ref}`Changelog ` \|
SBOM
| 2025-05-16 | 2025-08-15 | From 3e1743a6e0b73fd5c7bef44a115778e5a2f6434b Mon Sep 17 00:00:00 2001 From: Amy Blais <29708087+amyblais@users.noreply.github.com> Date: Tue, 7 Jul 2026 11:49:47 +0300 Subject: [PATCH 02/28] Add v10.11.22 dot release changelog entry --- source/product-overview/mattermost-v10-changelog.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/source/product-overview/mattermost-v10-changelog.md b/source/product-overview/mattermost-v10-changelog.md index 400032fa3ec..7829367b47f 100644 --- a/source/product-overview/mattermost-v10-changelog.md +++ b/source/product-overview/mattermost-v10-changelog.md @@ -85,6 +85,14 @@ If you upgrade from a release earlier than v10.10, please read the other [Import - Customers should not upgrade from ``>=10.11.17`` to ``<=11.7.2`` due to a bug that causes an issue with database migration numbers. The bug is fixed in v11.7.3. ``` +- **10.11.22, released 2026-07-15** + - Mattermost v10.11.22 contains low to high severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.html) to this release is recommended. Details will be posted on our [security updates page](https://mattermost.com/security-updates/) 30 days after release as per the [Mattermost Responsible Disclosure Policy](https://mattermost.com/security-vulnerability-report/). + - Pre-packaged Playbooks plugin version [v2.4.7](https://github.com/mattermost/mattermost-plugin-playbooks/releases/tag/v2.4.7). + - Pre-packaged Jira plugin version [v4.7.1](https://github.com/mattermost/mattermost-plugin-jira/releases/tag/v4.7.1). + - Pre-packaged Boards plugin version [v9.3.0](https://github.com/mattermost/mattermost-plugin-boards/releases/tag/v9.3.0). + - Tightened validation when updating channel member roles via the API. + - Tightened authorization on the OAuth deauthorization and personal access token management endpoints. + - Mattermost v10.11.22 contains no database or functional changes. - **10.11.21, released 2026-06-26** - Mattermost v10.11.21 contains low to medium severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.html) to this release is recommended. Details will be posted on our [security updates page](https://mattermost.com/security-updates/) 30 days after release as per the [Mattermost Responsible Disclosure Policy](https://mattermost.com/security-vulnerability-report/). - Pre-packaged GitLab plugin version [v1.12.3](https://github.com/mattermost/mattermost-plugin-gitlab/releases/tag/v1.12.3). From cb72551cbe63e3ae93c13f14c801f463fa468db2 Mon Sep 17 00:00:00 2001 From: Amy Blais <29708087+amyblais@users.noreply.github.com> Date: Tue, 7 Jul 2026 11:49:48 +0300 Subject: [PATCH 03/28] Add v10.11.22 to version archive --- source/product-overview/version-archive.rst | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/source/product-overview/version-archive.rst b/source/product-overview/version-archive.rst index 6f20d75ec8e..7d4df3840b9 100644 --- a/source/product-overview/version-archive.rst +++ b/source/product-overview/version-archive.rst @@ -61,11 +61,11 @@ If you want to check that the version of Mattermost you are installing is the of - SHA-256 Checksum: ``4b360d1bd3802767472177e2f6097a7e0c7ec271471f6530ccfbf81f650970a4`` - GPG Signature: https://releases.mattermost.com/10.12.4/mattermost-10.12.4-linux-amd64.tar.gz.sig - SBOM Download Link: https://releases.mattermost.com/10.12.4/sbom-enterprise-v10.12.4.json - Mattermost Enterprise Edition v10.11.21 *Extended Support Release (ESR)* - `View Changelog `__ - `Download `__ - - ``https://releases.mattermost.com/10.11.21/mattermost-10.11.21-linux-amd64.tar.gz`` - - SHA-256 Checksum: ``e7adcb633a2beb781a60345e8e6ff127af372e8b29557a11192fff19975913dd`` - - GPG Signature: https://releases.mattermost.com/10.11.21/mattermost-10.11.21-linux-amd64.tar.gz.sig - - SBOM Download Link: https://releases.mattermost.com/10.11.21/sbom-enterprise-v10.11.21.json + Mattermost Enterprise Edition v10.11.22 *Extended Support Release (ESR)* - `View Changelog `__ - `Download `__ + - ``https://releases.mattermost.com/10.11.22/mattermost-10.11.22-linux-amd64.tar.gz`` + - SHA-256 Checksum: ``TBD`` + - GPG Signature: https://releases.mattermost.com/10.11.22/mattermost-10.11.22-linux-amd64.tar.gz.sig + - SBOM Download Link: https://releases.mattermost.com/10.11.22/sbom-enterprise-v10.11.22.json Mattermost Enterprise Edition v10.10.3 - `View Changelog `__ - `Download `__ - ``https://releases.mattermost.com/10.10.3/mattermost-10.10.3-linux-amd64.tar.gz`` - SHA-256 Checksum: ``c970e77aad18f273a25f333192559cb808f73c28b8a89f2bf49be755ec2eff91`` @@ -539,11 +539,11 @@ If you want to check that the version of Mattermost you are installing is the of - SHA-256 Checksum: ``952f629cedcea017d9db43e622eaebb8aef66ac4dcd03e93a1b861a82433d9ea`` - GPG Signature: https://releases.mattermost.com/10.12.4/mattermost-team-10.12.4-linux-amd64.tar.gz.sig - SBOM Download Link: https://github.com/mattermost/mattermost/releases/download/v10.12.4/sbom-mattermost-v10.12.4.json - Mattermost Team Edition v10.11.21 *Extended Support Release (ESR)* - `View Changelog `__ - `Download `__ - - ``https://releases.mattermost.com/10.11.21/mattermost-team-10.11.21-linux-amd64.tar.gz`` - - SHA-256 Checksum: ``9d6a36976831d6bcd1881df3b09f18e7ad998e1cffceee29da0feb7497a69d6c`` - - GPG Signature: https://releases.mattermost.com/10.11.21/mattermost-team-10.11.21-linux-amd64.tar.gz.sig - - SBOM Download Link: https://github.com/mattermost/mattermost/releases/download/v10.11.21/sbom-mattermost-v10.11.21.json + Mattermost Team Edition v10.11.22 *Extended Support Release (ESR)* - `View Changelog `__ - `Download `__ + - ``https://releases.mattermost.com/10.11.22/mattermost-team-10.11.22-linux-amd64.tar.gz`` + - SHA-256 Checksum: ``TBD`` + - GPG Signature: https://releases.mattermost.com/10.11.22/mattermost-team-10.11.22-linux-amd64.tar.gz.sig + - SBOM Download Link: https://github.com/mattermost/mattermost/releases/download/v10.11.22/sbom-mattermost-v10.11.22.json Mattermost Team Edition v10.10.3 - `View Changelog `__ - `Download `__ - ``https://releases.mattermost.com/10.10.3/mattermost-team-10.10.3-linux-amd64.tar.gz`` - SHA-256 Checksum: ``12387834baeeecf824b6b5a18df39d83803d0964ae4907f9e944f60e086117a0`` From eb2f7a37addb770d7befbd770dd0cc5251aa8fa3 Mon Sep 17 00:00:00 2001 From: Amy Blais <29708087+amyblais@users.noreply.github.com> Date: Wed, 8 Jul 2026 09:43:30 +0300 Subject: [PATCH 04/28] Bump v11.7 download link to v11.7.7 --- source/product-overview/mattermost-server-releases.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/product-overview/mattermost-server-releases.md b/source/product-overview/mattermost-server-releases.md index 9b804e59a18..9f4370e63bb 100644 --- a/source/product-overview/mattermost-server-releases.md +++ b/source/product-overview/mattermost-server-releases.md @@ -20,7 +20,7 @@ Mattermost releases a new server version on the 16th of each month in [binary fo | **Release** | **Released on** | **Support ends** | |:---|:---|:---| | v11.8 [Download](https://releases.mattermost.com/11.8.2/mattermost-11.8.2-linux-amd64.tar.gz) \| {ref}`Changelog ` \|
SBOM
| 2026-06-16 | 2026-09-15 | -| v11.7 [Download](https://releases.mattermost.com/11.7.6/mattermost-11.7.6-linux-amd64.tar.gz) \| {ref}`Changelog ` \|
SBOM
| 2026-05-15 | 2027-05-15 {ref}`EXTENDED ` | +| v11.7 [Download](https://releases.mattermost.com/11.7.7/mattermost-11.7.7-linux-amd64.tar.gz) \| {ref}`Changelog ` \|
SBOM
| 2026-05-15 | 2027-05-15 {ref}`EXTENDED ` | | v11.6 [Download](https://releases.mattermost.com/11.6.6/mattermost-11.6.6-linux-amd64.tar.gz) \| {ref}`Changelog ` \|
SBOM
| 2026-04-16 | 2026-07-15 | | v11.5 [Download](https://releases.mattermost.com/11.5.7/mattermost-11.5.7-linux-amd64.tar.gz) \| {ref}`Changelog ` \|
SBOM
| 2026-03-16 | 2026-06-15 | | v11.4 [Download](https://releases.mattermost.com/11.4.5/mattermost-11.4.5-linux-amd64.tar.gz) \| {ref}`Changelog ` \|
SBOM
| 2026-02-16 | 2026-05-15 | From 7c1e44abb7dcb1f9e58ce9e17d11e605605d473d Mon Sep 17 00:00:00 2001 From: Amy Blais <29708087+amyblais@users.noreply.github.com> Date: Wed, 8 Jul 2026 09:43:31 +0300 Subject: [PATCH 05/28] Add v11.7.7 dot release changelog entry --- source/product-overview/mattermost-v11-changelog.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/source/product-overview/mattermost-v11-changelog.md b/source/product-overview/mattermost-v11-changelog.md index d7611b8ba5b..a27f1bdab49 100644 --- a/source/product-overview/mattermost-v11-changelog.md +++ b/source/product-overview/mattermost-v11-changelog.md @@ -189,6 +189,15 @@ See [this blog post](https://mattermost.com/blog/mattermost-v11-8-0-is-now-avail (release-v11.7-extended-support-release)= ## Release v11.7 - [Extended Support Release](https://docs.mattermost.com/product-overview/release-policy.html#release-types) +- **11.7.7, released 2026-07-08** + - Mattermost v11.7.7 contains low to high severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.html) to this release is recommended. Details will be posted on our [security updates page](https://mattermost.com/security-updates/) 30 days after release as per the [Mattermost Responsible Disclosure Policy](https://mattermost.com/security-vulnerability-report/). + - Pre-packaged Playbooks plugin version [v2.9.2](https://github.com/mattermost/mattermost-plugin-playbooks/releases/tag/v2.9.2). + - Pre-packaged Jira plugin version [v4.7.1](https://github.com/mattermost/mattermost-plugin-jira/releases/tag/v4.7.1). + - Pre-packaged Boards plugin version [v9.3.0](https://github.com/mattermost/mattermost-plugin-boards/releases/tag/v9.3.0). + - Tightened validation when updating channel member roles via the API. + - Tightened authorization on the OAuth deauthorization and personal access token management endpoints. + - Fixed an issue where a file read failure while building a Global Relay compliance export could crash the server. + - Mattermost v11.7.7 contains no database or functional changes. - **11.7.6, released 2026-06-26** - Mattermost v11.7.6 contains low severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.html) to this release is recommended. Details will be posted on our [security updates page](https://mattermost.com/security-updates/) 30 days after release as per the [Mattermost Responsible Disclosure Policy](https://mattermost.com/security-vulnerability-report/). - Pre-packaged GitLab plugin version [v1.12.3](https://github.com/mattermost/mattermost-plugin-gitlab/releases/tag/v1.12.3). From 537f870473c351100e13013ecd4a868bd884ffac Mon Sep 17 00:00:00 2001 From: Amy Blais <29708087+amyblais@users.noreply.github.com> Date: Wed, 8 Jul 2026 09:43:32 +0300 Subject: [PATCH 06/28] Add v11.7.7 to version archive --- source/product-overview/version-archive.rst | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/source/product-overview/version-archive.rst b/source/product-overview/version-archive.rst index 7d4df3840b9..85b8ab3ed40 100644 --- a/source/product-overview/version-archive.rst +++ b/source/product-overview/version-archive.rst @@ -16,11 +16,11 @@ If you want to check that the version of Mattermost you are installing is the of - SHA-256 Checksum: ``71c22f6c9c661145103dc99156dba39e95a61c7bb2013cff3757396ee565b873`` - GPG Signature: https://releases.mattermost.com/11.8.2/mattermost-11.8.2-linux-amd64.tar.gz.sig - SBOM Download Link: https://releases.mattermost.com/11.8.2/sbom-enterprise-v11.8.2.json - Mattermost Enterprise Edition v11.7.6 *Extended Support Release (ESR)* - `View Changelog `__ - `Download `__ - - ``https://releases.mattermost.com/11.7.6/mattermost-11.7.6-linux-amd64.tar.gz`` - - SHA-256 Checksum: ``264fccda79d59d64874508ebe825cc2a59c1f68f1dae1d9bbee03525db3e3eda`` - - GPG Signature: https://releases.mattermost.com/11.7.6/mattermost-11.7.6-linux-amd64.tar.gz.sig - - SBOM Download Link: https://releases.mattermost.com/11.7.6/sbom-enterprise-v11.7.6.json + Mattermost Enterprise Edition v11.7.7 *Extended Support Release (ESR)* - `View Changelog `__ - `Download `__ + - ``https://releases.mattermost.com/11.7.7/mattermost-11.7.7-linux-amd64.tar.gz`` + - SHA-256 Checksum: ``TBD`` + - GPG Signature: https://releases.mattermost.com/11.7.7/mattermost-11.7.7-linux-amd64.tar.gz.sig + - SBOM Download Link: https://releases.mattermost.com/11.7.7/sbom-enterprise-v11.7.7.json Mattermost Enterprise Edition v11.6.6 - `View Changelog `__ - `Download `__ - ``https://releases.mattermost.com/11.6.6/mattermost-11.6.6-linux-amd64.tar.gz`` - SHA-256 Checksum: ``2f4546070eb3a092f3e4c02ff67c7d832ce2d9c7d7858246133e5886978ef605`` @@ -494,11 +494,11 @@ If you want to check that the version of Mattermost you are installing is the of - SHA-256 Checksum: ``de6d1ba83207ce6948588f851aa8ebdc15c3dfb21633867b67e9c822f960fd6d`` - GPG Signature: https://releases.mattermost.com/11.8.2/mattermost-team-11.8.2-linux-amd64.tar.gz.sig - SBOM Download Link: https://github.com/mattermost/mattermost/releases/download/v11.8.2/sbom-mattermost-v11.8.2.json - Mattermost Team Edition v11.7.6 *Extended Support Release (ESR)* - `View Changelog `__ - `Download `__ - - ``https://releases.mattermost.com/11.7.6/mattermost-team-11.7.6-linux-amd64.tar.gz`` - - SHA-256 Checksum: ``70aef239d1ab5c4503ecbc89329fb74256472bcca1ee656a50a102899e589c44`` - - GPG Signature: https://releases.mattermost.com/11.7.6/mattermost-team-11.7.6-linux-amd64.tar.gz.sig - - SBOM Download Link: https://github.com/mattermost/mattermost/releases/download/v11.7.6/sbom-mattermost-v11.7.6.json + Mattermost Team Edition v11.7.7 *Extended Support Release (ESR)* - `View Changelog `__ - `Download `__ + - ``https://releases.mattermost.com/11.7.7/mattermost-team-11.7.7-linux-amd64.tar.gz`` + - SHA-256 Checksum: ``TBD`` + - GPG Signature: https://releases.mattermost.com/11.7.7/mattermost-team-11.7.7-linux-amd64.tar.gz.sig + - SBOM Download Link: https://github.com/mattermost/mattermost/releases/download/v11.7.7/sbom-mattermost-v11.7.7.json Mattermost Team Edition v11.6.6 - `View Changelog `__ - `Download `__ - ``https://releases.mattermost.com/11.6.6/mattermost-team-11.6.6-linux-amd64.tar.gz`` - SHA-256 Checksum: ``809c63cd1ed1b877cea9fa5aae996380cfde2dc18733353586239f99f3e9bbbc`` From d45a6360a254192679f03b4cfd701fd5108fd757 Mon Sep 17 00:00:00 2001 From: Amy Blais <29708087+amyblais@users.noreply.github.com> Date: Wed, 8 Jul 2026 09:43:52 +0300 Subject: [PATCH 07/28] Bump current ESR to v11.7.7 --- source/deployment-guide/server/linux/deploy-rhel.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/deployment-guide/server/linux/deploy-rhel.rst b/source/deployment-guide/server/linux/deploy-rhel.rst index a0bdf540c79..62d90a13fd1 100644 --- a/source/deployment-guide/server/linux/deploy-rhel.rst +++ b/source/deployment-guide/server/linux/deploy-rhel.rst @@ -50,7 +50,7 @@ In a terminal window, ssh onto the system that will host the Mattermost Server. .. code-block:: sh - wget https://releases.mattermost.com/11.7.6/mattermost-11.7.6-linux-amd64.tar.gz + wget https://releases.mattermost.com/11.7.7/mattermost-11.7.7-linux-amd64.tar.gz .. tab:: Older releases From 23ebcb7f0ff87ed2d5750ff3b74e4d5366cd1343 Mon Sep 17 00:00:00 2001 From: Amy Blais <29708087+amyblais@users.noreply.github.com> Date: Wed, 8 Jul 2026 09:43:53 +0300 Subject: [PATCH 08/28] Bump current ESR to v11.7.7 --- source/deployment-guide/server/linux/deploy-tar.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/deployment-guide/server/linux/deploy-tar.rst b/source/deployment-guide/server/linux/deploy-tar.rst index a1300c32c50..255905d63bf 100644 --- a/source/deployment-guide/server/linux/deploy-tar.rst +++ b/source/deployment-guide/server/linux/deploy-tar.rst @@ -51,7 +51,7 @@ In a terminal window, ssh onto the system that will host the Mattermost Server. .. code-block:: sh - wget https://releases.mattermost.com/11.7.6/mattermost-11.7.6-linux-amd64.tar.gz + wget https://releases.mattermost.com/11.7.7/mattermost-11.7.7-linux-amd64.tar.gz .. tab:: Older releases From 522252746732b070a871947e3a0b1888b18f7893 Mon Sep 17 00:00:00 2001 From: Amy Blais <29708087+amyblais@users.noreply.github.com> Date: Wed, 8 Jul 2026 10:28:09 +0300 Subject: [PATCH 09/28] Add v11.8.4 placeholder changelog entry --- 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 a27f1bdab49..80e2bfe5a60 100644 --- a/source/product-overview/mattermost-v11-changelog.md +++ b/source/product-overview/mattermost-v11-changelog.md @@ -16,6 +16,8 @@ Platform and OS scope reflects reported and tested environments and may not repr (release-v11.8-feature-release)= ## Release v11.8 - [Feature Release](https://docs.mattermost.com/product-overview/release-policy.html#release-types) +- **11.8.4, released TBD** + - TBD. - **11.8.2, released 2026-06-26** - Mattermost v11.8.2 contains a medium severity level security fix. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.html) to this release is recommended. Details will be posted on our [security updates page](https://mattermost.com/security-updates/) 30 days after release as per the [Mattermost Responsible Disclosure Policy](https://mattermost.com/security-vulnerability-report/). - Pre-packaged Agents plugin version [v2.0.5](https://github.com/mattermost/mattermost-plugin-agents/releases/tag/v2.0.5). From 733cdec4b3d36ca3fd46152308656f712bbc7a6d Mon Sep 17 00:00:00 2001 From: Amy Blais <29708087+amyblais@users.noreply.github.com> Date: Wed, 8 Jul 2026 10:33:42 +0300 Subject: [PATCH 10/28] Update deploy-rhel.rst --- source/deployment-guide/server/linux/deploy-rhel.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/deployment-guide/server/linux/deploy-rhel.rst b/source/deployment-guide/server/linux/deploy-rhel.rst index 62d90a13fd1..81676f75785 100644 --- a/source/deployment-guide/server/linux/deploy-rhel.rst +++ b/source/deployment-guide/server/linux/deploy-rhel.rst @@ -44,7 +44,7 @@ In a terminal window, ssh onto the system that will host the Mattermost Server. .. code-block:: sh - wget https://releases.mattermost.com/11.8.2/mattermost-11.8.2-linux-amd64.tar.gz + wget https://releases.mattermost.com/11.8.4/mattermost-11.8.4-linux-amd64.tar.gz .. tab:: Current ESR From ee5e615509705c9a1bc3b74e45f0733e0c6a2c8b Mon Sep 17 00:00:00 2001 From: Amy Blais <29708087+amyblais@users.noreply.github.com> Date: Wed, 8 Jul 2026 10:33:55 +0300 Subject: [PATCH 11/28] Update deploy-tar.rst --- source/deployment-guide/server/linux/deploy-tar.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/deployment-guide/server/linux/deploy-tar.rst b/source/deployment-guide/server/linux/deploy-tar.rst index 255905d63bf..73c041653b3 100644 --- a/source/deployment-guide/server/linux/deploy-tar.rst +++ b/source/deployment-guide/server/linux/deploy-tar.rst @@ -45,7 +45,7 @@ In a terminal window, ssh onto the system that will host the Mattermost Server. .. code-block:: sh - wget https://releases.mattermost.com/11.8.2/mattermost-11.8.2-linux-amd64.tar.gz + wget https://releases.mattermost.com/11.8.4/mattermost-11.8.4-linux-amd64.tar.gz .. tab:: Current ESR From b24b6d6c73e484e90bc890c9bb8f88bd9456d2f9 Mon Sep 17 00:00:00 2001 From: Amy Blais <29708087+amyblais@users.noreply.github.com> Date: Wed, 8 Jul 2026 10:34:35 +0300 Subject: [PATCH 12/28] Update mattermost-server-releases.md --- source/product-overview/mattermost-server-releases.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/product-overview/mattermost-server-releases.md b/source/product-overview/mattermost-server-releases.md index 9f4370e63bb..16f129e5055 100644 --- a/source/product-overview/mattermost-server-releases.md +++ b/source/product-overview/mattermost-server-releases.md @@ -19,7 +19,7 @@ Mattermost releases a new server version on the 16th of each month in [binary fo | **Release** | **Released on** | **Support ends** | |:---|:---|:---| -| v11.8 [Download](https://releases.mattermost.com/11.8.2/mattermost-11.8.2-linux-amd64.tar.gz) \| {ref}`Changelog ` \|
SBOM
| 2026-06-16 | 2026-09-15 | +| v11.8 [Download](https://releases.mattermost.com/11.8.4/mattermost-11.8.4-linux-amd64.tar.gz) \| {ref}`Changelog ` \|
SBOM
| 2026-06-16 | 2026-09-15 | | v11.7 [Download](https://releases.mattermost.com/11.7.7/mattermost-11.7.7-linux-amd64.tar.gz) \| {ref}`Changelog ` \|
SBOM
| 2026-05-15 | 2027-05-15 {ref}`EXTENDED ` | | v11.6 [Download](https://releases.mattermost.com/11.6.6/mattermost-11.6.6-linux-amd64.tar.gz) \| {ref}`Changelog ` \|
SBOM
| 2026-04-16 | 2026-07-15 | | v11.5 [Download](https://releases.mattermost.com/11.5.7/mattermost-11.5.7-linux-amd64.tar.gz) \| {ref}`Changelog ` \|
SBOM
| 2026-03-16 | 2026-06-15 | From 8767ab506b50924c62cacf35d404cd3fa084ed93 Mon Sep 17 00:00:00 2001 From: Amy Blais <29708087+amyblais@users.noreply.github.com> Date: Wed, 8 Jul 2026 10:35:31 +0300 Subject: [PATCH 13/28] Update version-archive.rst --- source/product-overview/version-archive.rst | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/source/product-overview/version-archive.rst b/source/product-overview/version-archive.rst index 85b8ab3ed40..d83c2fc94e3 100644 --- a/source/product-overview/version-archive.rst +++ b/source/product-overview/version-archive.rst @@ -11,11 +11,11 @@ If you want to check that the version of Mattermost you are installing is the of .. tab:: Mattermost Enterprise - Mattermost Enterprise Edition v11.8.2 - `View Changelog `__ - `Download `__ - - ``https://releases.mattermost.com/11.8.2/mattermost-11.8.2-linux-amd64.tar.gz`` - - SHA-256 Checksum: ``71c22f6c9c661145103dc99156dba39e95a61c7bb2013cff3757396ee565b873`` - - GPG Signature: https://releases.mattermost.com/11.8.2/mattermost-11.8.2-linux-amd64.tar.gz.sig - - SBOM Download Link: https://releases.mattermost.com/11.8.2/sbom-enterprise-v11.8.2.json + Mattermost Enterprise Edition v11.8.4 - `View Changelog `__ - `Download `__ + - ``https://releases.mattermost.com/11.8.4/mattermost-11.8.4-linux-amd64.tar.gz`` + - SHA-256 Checksum: ``TBD`` + - GPG Signature: https://releases.mattermost.com/11.8.4/mattermost-11.8.4-linux-amd64.tar.gz.sig + - SBOM Download Link: https://releases.mattermost.com/11.8.4/sbom-enterprise-v11.8.4.json Mattermost Enterprise Edition v11.7.7 *Extended Support Release (ESR)* - `View Changelog `__ - `Download `__ - ``https://releases.mattermost.com/11.7.7/mattermost-11.7.7-linux-amd64.tar.gz`` - SHA-256 Checksum: ``TBD`` @@ -489,10 +489,10 @@ If you want to check that the version of Mattermost you are installing is the of We generally recommend installing Enterprise Edition, even if you don't currently need a license. This provides the flexibility to seamlessly unlock Enterprise features should you need them. However, if you only want to install software with a fully open source code base, then Team Edition is the best choice for you. - Mattermost Team Edition v11.8.2 - `View Changelog `__ - `Download `__ - - ``https://releases.mattermost.com/11.8.2/mattermost-team-11.8.2-linux-amd64.tar.gz`` - - SHA-256 Checksum: ``de6d1ba83207ce6948588f851aa8ebdc15c3dfb21633867b67e9c822f960fd6d`` - - GPG Signature: https://releases.mattermost.com/11.8.2/mattermost-team-11.8.2-linux-amd64.tar.gz.sig + Mattermost Team Edition v11.8.4 - `View Changelog `__ - `Download `__ + - ``https://releases.mattermost.com/11.8.4/mattermost-team-11.8.4-linux-amd64.tar.gz`` + - SHA-256 Checksum: ``TBD`` + - GPG Signature: https://releases.mattermost.com/11.8.4/mattermost-team-11.8.4-linux-amd64.tar.gz.sig - SBOM Download Link: https://github.com/mattermost/mattermost/releases/download/v11.8.2/sbom-mattermost-v11.8.2.json Mattermost Team Edition v11.7.7 *Extended Support Release (ESR)* - `View Changelog `__ - `Download `__ - ``https://releases.mattermost.com/11.7.7/mattermost-team-11.7.7-linux-amd64.tar.gz`` From d300c40e69cd1bee71b640a45f3bd4c3cad0dc09 Mon Sep 17 00:00:00 2001 From: Amy Blais <29708087+amyblais@users.noreply.github.com> Date: Wed, 8 Jul 2026 10:37:53 +0300 Subject: [PATCH 14/28] Update mattermost-v11-changelog.md --- source/product-overview/mattermost-v11-changelog.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/source/product-overview/mattermost-v11-changelog.md b/source/product-overview/mattermost-v11-changelog.md index 80e2bfe5a60..4d8188d1533 100644 --- a/source/product-overview/mattermost-v11-changelog.md +++ b/source/product-overview/mattermost-v11-changelog.md @@ -16,8 +16,10 @@ Platform and OS scope reflects reported and tested environments and may not repr (release-v11.8-feature-release)= ## Release v11.8 - [Feature Release](https://docs.mattermost.com/product-overview/release-policy.html#release-types) -- **11.8.4, released TBD** - - TBD. +- **11.8.4, released 2026-07-15** + - Mattermost v11.8.4 contains medium to high severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.html) to this release is recommended. Details will be posted on our [security updates page](https://mattermost.com/security-updates/) 30 days after release as per the [Mattermost Responsible Disclosure Policy](https://mattermost.com/security-vulnerability-report/). + - Pre-packaged Boards plugin version [v9.3.0](https://github.com/mattermost/mattermost-plugin-boards/releases/tag/v9.3.0). + - Mattermost v11.8.4 contains no database or functional changes. - **11.8.2, released 2026-06-26** - Mattermost v11.8.2 contains a medium severity level security fix. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.html) to this release is recommended. Details will be posted on our [security updates page](https://mattermost.com/security-updates/) 30 days after release as per the [Mattermost Responsible Disclosure Policy](https://mattermost.com/security-vulnerability-report/). - Pre-packaged Agents plugin version [v2.0.5](https://github.com/mattermost/mattermost-plugin-agents/releases/tag/v2.0.5). @@ -191,7 +193,7 @@ See [this blog post](https://mattermost.com/blog/mattermost-v11-8-0-is-now-avail (release-v11.7-extended-support-release)= ## Release v11.7 - [Extended Support Release](https://docs.mattermost.com/product-overview/release-policy.html#release-types) -- **11.7.7, released 2026-07-08** +- **11.7.7, released 2026-07-15** - Mattermost v11.7.7 contains low to high severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.html) to this release is recommended. Details will be posted on our [security updates page](https://mattermost.com/security-updates/) 30 days after release as per the [Mattermost Responsible Disclosure Policy](https://mattermost.com/security-vulnerability-report/). - Pre-packaged Playbooks plugin version [v2.9.2](https://github.com/mattermost/mattermost-plugin-playbooks/releases/tag/v2.9.2). - Pre-packaged Jira plugin version [v4.7.1](https://github.com/mattermost/mattermost-plugin-jira/releases/tag/v4.7.1). From 3a76b3ca6ac971deb5175e0842813a0f9b131b64 Mon Sep 17 00:00:00 2001 From: Amy Blais <29708087+amyblais@users.noreply.github.com> Date: Wed, 8 Jul 2026 10:44:15 +0300 Subject: [PATCH 15/28] 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 4d8188d1533..941b7a19cf5 100644 --- a/source/product-overview/mattermost-v11-changelog.md +++ b/source/product-overview/mattermost-v11-changelog.md @@ -201,6 +201,7 @@ See [this blog post](https://mattermost.com/blog/mattermost-v11-8-0-is-now-avail - Tightened validation when updating channel member roles via the API. - Tightened authorization on the OAuth deauthorization and personal access token management endpoints. - Fixed an issue where a file read failure while building a Global Relay compliance export could crash the server. + - Fixed an issue with plugin configuration loss on High Availability nodes with incomplete plugin sync. - Mattermost v11.7.7 contains no database or functional changes. - **11.7.6, released 2026-06-26** - Mattermost v11.7.6 contains low severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.html) to this release is recommended. Details will be posted on our [security updates page](https://mattermost.com/security-updates/) 30 days after release as per the [Mattermost Responsible Disclosure Policy](https://mattermost.com/security-vulnerability-report/). From 3cb82ef995f6949540bec95950c57bb4a4f6c05a Mon Sep 17 00:00:00 2001 From: Amy Blais <29708087+amyblais@users.noreply.github.com> Date: Wed, 8 Jul 2026 10:51:52 +0300 Subject: [PATCH 16/28] Update source/product-overview/version-archive.rst Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> --- source/product-overview/version-archive.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/product-overview/version-archive.rst b/source/product-overview/version-archive.rst index d83c2fc94e3..2cdd7e3a85e 100644 --- a/source/product-overview/version-archive.rst +++ b/source/product-overview/version-archive.rst @@ -493,7 +493,7 @@ If you want to check that the version of Mattermost you are installing is the of - ``https://releases.mattermost.com/11.8.4/mattermost-team-11.8.4-linux-amd64.tar.gz`` - SHA-256 Checksum: ``TBD`` - GPG Signature: https://releases.mattermost.com/11.8.4/mattermost-team-11.8.4-linux-amd64.tar.gz.sig - - SBOM Download Link: https://github.com/mattermost/mattermost/releases/download/v11.8.2/sbom-mattermost-v11.8.2.json + - SBOM Download Link: https://github.com/mattermost/mattermost/releases/download/v11.8.4/sbom-mattermost-v11.8.4.json Mattermost Team Edition v11.7.7 *Extended Support Release (ESR)* - `View Changelog `__ - `Download `__ - ``https://releases.mattermost.com/11.7.7/mattermost-team-11.7.7-linux-amd64.tar.gz`` - SHA-256 Checksum: ``TBD`` From 22985ae094511d8d52012b5cb6a33d56c1495e4f Mon Sep 17 00:00:00 2001 From: Amy Blais <29708087+amyblais@users.noreply.github.com> Date: Thu, 9 Jul 2026 10:38:59 +0300 Subject: [PATCH 17/28] 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 c1910d8adca..eb73d14d743 100644 --- a/source/product-overview/mattermost-v11-changelog.md +++ b/source/product-overview/mattermost-v11-changelog.md @@ -208,6 +208,7 @@ See [this blog post](https://mattermost.com/blog/mattermost-v11-8-0-is-now-avail - Tightened authorization on the OAuth deauthorization and personal access token management endpoints. - Fixed an issue where a file read failure while building a Global Relay compliance export could crash the server. - Fixed an issue with plugin configuration loss on High Availability nodes with incomplete plugin sync. + - 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. - Mattermost v11.7.7 contains no database or functional changes. - **11.7.6, released 2026-06-26** - Mattermost v11.7.6 contains low severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.html) to this release is recommended. Details will be posted on our [security updates page](https://mattermost.com/security-updates/) 30 days after release as per the [Mattermost Responsible Disclosure Policy](https://mattermost.com/security-vulnerability-report/). From e0cf4f108fdc3d247283a8173599c4d2bcfac173 Mon Sep 17 00:00:00 2001 From: Amy Blais <29708087+amyblais@users.noreply.github.com> Date: Wed, 15 Jul 2026 11:39:56 +0300 Subject: [PATCH 18/28] Update mattermost-v11-changelog.md --- source/product-overview/mattermost-v11-changelog.md | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/source/product-overview/mattermost-v11-changelog.md b/source/product-overview/mattermost-v11-changelog.md index eb73d14d743..a4aad05d5f6 100644 --- a/source/product-overview/mattermost-v11-changelog.md +++ b/source/product-overview/mattermost-v11-changelog.md @@ -19,7 +19,11 @@ Platform and OS scope reflects reported and tested environments and may not repr - **11.8.4, released 2026-07-15** - Mattermost v11.8.4 contains medium to high severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.html) to this release is recommended. Details will be posted on our [security updates page](https://mattermost.com/security-updates/) 30 days after release as per the [Mattermost Responsible Disclosure Policy](https://mattermost.com/security-vulnerability-report/). - Pre-packaged Boards plugin version [v9.3.0](https://github.com/mattermost/mattermost-plugin-boards/releases/tag/v9.3.0). - - Mattermost v11.8.4 contains no database or functional changes. + - Added ``GET /access_control/policy`` (``getTeamAccessControlPolicy``) API endpoint. + - Added a new API file: ``team_abac_api_test.go``. + - Added a new API file: ``team_membership_enforcement_test.go``. + - Mattermost v11.8.4 contains the following database changes: + - Added composite index ``idx_access_control_policies_type_id`` on ``AccessControlPolicies(Type, Id)`` to improve policy lookup performance with no downtime or blocking impact. - **11.8.3, released 2026-07-08** - Mattermost v11.8.3 contains a medium severity level security fix. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.html) to this release is recommended. Details will be posted on our [security updates page](https://mattermost.com/security-updates/) 30 days after release as per the [Mattermost Responsible Disclosure Policy](https://mattermost.com/security-vulnerability-report/). - Avoided saving stale configurations from the System Console by refreshing a system admin's snapshot of the configuration whenever it changed. @@ -209,7 +213,11 @@ See [this blog post](https://mattermost.com/blog/mattermost-v11-8-0-is-now-avail - Fixed an issue where a file read failure while building a Global Relay compliance export could crash the server. - Fixed an issue with plugin configuration loss on High Availability nodes with incomplete plugin sync. - 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. - - Mattermost v11.7.7 contains no database or functional changes. + - Added ``GET /access_control/policy`` (``getTeamAccessControlPolicy``) API endpoint. + - Added a new API file: ``team_abac_api_test.go``. + - Added a new API file: ``team_membership_enforcement_test.go``. + - Mattermost v11.7.7 contains the following database changes: + - Added composite index ``idx_access_control_policies_type_id`` on ``AccessControlPolicies(Type, Id)`` to improve policy lookup performance with no downtime or blocking impact. - **11.7.6, released 2026-06-26** - Mattermost v11.7.6 contains low severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.html) to this release is recommended. Details will be posted on our [security updates page](https://mattermost.com/security-updates/) 30 days after release as per the [Mattermost Responsible Disclosure Policy](https://mattermost.com/security-vulnerability-report/). - Pre-packaged GitLab plugin version [v1.12.3](https://github.com/mattermost/mattermost-plugin-gitlab/releases/tag/v1.12.3). From 7894bcb3acdf2db5f9ea00b6e2139732909f6bc2 Mon Sep 17 00:00:00 2001 From: Amy Blais <29708087+amyblais@users.noreply.github.com> Date: Wed, 15 Jul 2026 11:44:05 +0300 Subject: [PATCH 19/28] Update mattermost-v11-changelog.md --- source/product-overview/mattermost-v11-changelog.md | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/source/product-overview/mattermost-v11-changelog.md b/source/product-overview/mattermost-v11-changelog.md index a4aad05d5f6..eb73d14d743 100644 --- a/source/product-overview/mattermost-v11-changelog.md +++ b/source/product-overview/mattermost-v11-changelog.md @@ -19,11 +19,7 @@ Platform and OS scope reflects reported and tested environments and may not repr - **11.8.4, released 2026-07-15** - Mattermost v11.8.4 contains medium to high severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.html) to this release is recommended. Details will be posted on our [security updates page](https://mattermost.com/security-updates/) 30 days after release as per the [Mattermost Responsible Disclosure Policy](https://mattermost.com/security-vulnerability-report/). - Pre-packaged Boards plugin version [v9.3.0](https://github.com/mattermost/mattermost-plugin-boards/releases/tag/v9.3.0). - - Added ``GET /access_control/policy`` (``getTeamAccessControlPolicy``) API endpoint. - - Added a new API file: ``team_abac_api_test.go``. - - Added a new API file: ``team_membership_enforcement_test.go``. - - Mattermost v11.8.4 contains the following database changes: - - Added composite index ``idx_access_control_policies_type_id`` on ``AccessControlPolicies(Type, Id)`` to improve policy lookup performance with no downtime or blocking impact. + - Mattermost v11.8.4 contains no database or functional changes. - **11.8.3, released 2026-07-08** - Mattermost v11.8.3 contains a medium severity level security fix. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.html) to this release is recommended. Details will be posted on our [security updates page](https://mattermost.com/security-updates/) 30 days after release as per the [Mattermost Responsible Disclosure Policy](https://mattermost.com/security-vulnerability-report/). - Avoided saving stale configurations from the System Console by refreshing a system admin's snapshot of the configuration whenever it changed. @@ -213,11 +209,7 @@ See [this blog post](https://mattermost.com/blog/mattermost-v11-8-0-is-now-avail - Fixed an issue where a file read failure while building a Global Relay compliance export could crash the server. - Fixed an issue with plugin configuration loss on High Availability nodes with incomplete plugin sync. - 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. - - Added ``GET /access_control/policy`` (``getTeamAccessControlPolicy``) API endpoint. - - Added a new API file: ``team_abac_api_test.go``. - - Added a new API file: ``team_membership_enforcement_test.go``. - - Mattermost v11.7.7 contains the following database changes: - - Added composite index ``idx_access_control_policies_type_id`` on ``AccessControlPolicies(Type, Id)`` to improve policy lookup performance with no downtime or blocking impact. + - Mattermost v11.7.7 contains no database or functional changes. - **11.7.6, released 2026-06-26** - Mattermost v11.7.6 contains low severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.html) to this release is recommended. Details will be posted on our [security updates page](https://mattermost.com/security-updates/) 30 days after release as per the [Mattermost Responsible Disclosure Policy](https://mattermost.com/security-vulnerability-report/). - Pre-packaged GitLab plugin version [v1.12.3](https://github.com/mattermost/mattermost-plugin-gitlab/releases/tag/v1.12.3). From fe4535430c6cb983ed7eaaa08e2eb2d5aae6694e Mon Sep 17 00:00:00 2001 From: Amy Blais <29708087+amyblais@users.noreply.github.com> Date: Thu, 16 Jul 2026 13:42:57 +0300 Subject: [PATCH 20/28] Update mattermost-v10-changelog.md --- source/product-overview/mattermost-v10-changelog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/product-overview/mattermost-v10-changelog.md b/source/product-overview/mattermost-v10-changelog.md index 7829367b47f..00d356b65e1 100644 --- a/source/product-overview/mattermost-v10-changelog.md +++ b/source/product-overview/mattermost-v10-changelog.md @@ -89,7 +89,7 @@ If you upgrade from a release earlier than v10.10, please read the other [Import - Mattermost v10.11.22 contains low to high severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.html) to this release is recommended. Details will be posted on our [security updates page](https://mattermost.com/security-updates/) 30 days after release as per the [Mattermost Responsible Disclosure Policy](https://mattermost.com/security-vulnerability-report/). - Pre-packaged Playbooks plugin version [v2.4.7](https://github.com/mattermost/mattermost-plugin-playbooks/releases/tag/v2.4.7). - Pre-packaged Jira plugin version [v4.7.1](https://github.com/mattermost/mattermost-plugin-jira/releases/tag/v4.7.1). - - Pre-packaged Boards plugin version [v9.3.0](https://github.com/mattermost/mattermost-plugin-boards/releases/tag/v9.3.0). + - Pre-packaged Boards plugin version [v9.2.6](https://github.com/mattermost/mattermost-plugin-boards/releases/tag/v9.2.6). - Tightened validation when updating channel member roles via the API. - Tightened authorization on the OAuth deauthorization and personal access token management endpoints. - Mattermost v10.11.22 contains no database or functional changes. From 1261546a9202e2d7d4d8d4668b6995b0d03590cc Mon Sep 17 00:00:00 2001 From: Amy Blais <29708087+amyblais@users.noreply.github.com> Date: Thu, 16 Jul 2026 13:43:30 +0300 Subject: [PATCH 21/28] 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 7470c140fd9..b26da7e3878 100644 --- a/source/product-overview/mattermost-v11-changelog.md +++ b/source/product-overview/mattermost-v11-changelog.md @@ -63,7 +63,7 @@ See [this blog post](https://mattermost.com/blog/mattermost-v11-9-0-is-now-avail - 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.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 Boards plugin version [v9.2.6](https://github.com/mattermost/mattermost-plugin-boards/releases/tag/v9.2.6). - 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 toast notification for plugin-rejected file uploads, consistent with the existing notification for rejected downloads. @@ -182,7 +182,7 @@ See [this blog post](https://mattermost.com/blog/mattermost-v11-9-0-is-now-avail - **11.8.4, released 2026-07-15** - Mattermost v11.8.4 contains medium to high severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.html) to this release is recommended. Details will be posted on our [security updates page](https://mattermost.com/security-updates/) 30 days after release as per the [Mattermost Responsible Disclosure Policy](https://mattermost.com/security-vulnerability-report/). - - Pre-packaged Boards plugin version [v9.3.0](https://github.com/mattermost/mattermost-plugin-boards/releases/tag/v9.3.0). + - Pre-packaged Boards plugin version [v9.2.6](https://github.com/mattermost/mattermost-plugin-boards/releases/tag/v9.2.6). - Mattermost v11.8.4 contains no database or functional changes. - **11.8.3, released 2026-07-08** - Mattermost v11.8.3 contains a medium severity level security fix. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.html) to this release is recommended. Details will be posted on our [security updates page](https://mattermost.com/security-updates/) 30 days after release as per the [Mattermost Responsible Disclosure Policy](https://mattermost.com/security-vulnerability-report/). From 4562bf135f1965b7699701d604f0f8c69c6c61dd Mon Sep 17 00:00:00 2001 From: Amy Blais <29708087+amyblais@users.noreply.github.com> Date: Thu, 16 Jul 2026 13:44:28 +0300 Subject: [PATCH 22/28] 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 b26da7e3878..94a56e88d05 100644 --- a/source/product-overview/mattermost-v11-changelog.md +++ b/source/product-overview/mattermost-v11-changelog.md @@ -63,7 +63,7 @@ See [this blog post](https://mattermost.com/blog/mattermost-v11-9-0-is-now-avail - 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.1](https://github.com/mattermost/mattermost-plugin-calls/releases/tag/v1.12.1). - - Pre-packaged Boards plugin version [v9.2.6](https://github.com/mattermost/mattermost-plugin-boards/releases/tag/v9.2.6). + - 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 toast notification for plugin-rejected file uploads, consistent with the existing notification for rejected downloads. @@ -371,7 +371,7 @@ See [this blog post](https://mattermost.com/blog/mattermost-v11-8-0-is-now-avail - Mattermost v11.7.7 contains low to high severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.html) to this release is recommended. Details will be posted on our [security updates page](https://mattermost.com/security-updates/) 30 days after release as per the [Mattermost Responsible Disclosure Policy](https://mattermost.com/security-vulnerability-report/). - Pre-packaged Playbooks plugin version [v2.9.2](https://github.com/mattermost/mattermost-plugin-playbooks/releases/tag/v2.9.2). - Pre-packaged Jira plugin version [v4.7.1](https://github.com/mattermost/mattermost-plugin-jira/releases/tag/v4.7.1). - - Pre-packaged Boards plugin version [v9.3.0](https://github.com/mattermost/mattermost-plugin-boards/releases/tag/v9.3.0). + - Pre-packaged Boards plugin version [v9.2.6](https://github.com/mattermost/mattermost-plugin-boards/releases/tag/v9.2.6). - Tightened validation when updating channel member roles via the API. - Tightened authorization on the OAuth deauthorization and personal access token management endpoints. - Fixed an issue where a file read failure while building a Global Relay compliance export could crash the server. From 1ec89b2131d7694e5d154aa7aa9f6b143e4aa628 Mon Sep 17 00:00:00 2001 From: Amy Blais <29708087+amyblais@users.noreply.github.com> Date: Fri, 17 Jul 2026 10:34:20 +0300 Subject: [PATCH 23/28] Update mattermost-mobile-releases.md --- source/product-overview/mattermost-mobile-releases.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/product-overview/mattermost-mobile-releases.md b/source/product-overview/mattermost-mobile-releases.md index 9eb0e0a28a1..0aac029b087 100644 --- a/source/product-overview/mattermost-mobile-releases.md +++ b/source/product-overview/mattermost-mobile-releases.md @@ -18,7 +18,7 @@ We strongly recommend using the latest mobile app release available that contain | **Release** | **Support** | **Compatible with** | |:---|:---|:---| -| v2.42 {ref}`FEATURE ` \| [Download](https://github.com/mattermost/mattermost-mobile/releases/tag/v2.42.0) \| {ref}`Changelog ` \| [SBOM download](https://github.com/mattermost/mattermost-mobile/releases/download/v2.42.0/sbom-mattermost-mobile-v2.42.0.json) | Released: 2026-07-16
Support Ends: 2026-08-15 | {ref}`v11.9 `, {ref}`v11.8 `, {ref}`v11.7 `, {ref}`v10.11 ` | +| v2.42 {ref}`FEATURE ` \| [Download](https://github.com/mattermost/mattermost-mobile/releases/tag/v2.42.1) \| {ref}`Changelog ` \| [SBOM download](https://github.com/mattermost/mattermost-mobile/releases/download/v2.42.1/sbom-mattermost-mobile-v2.42.1.json) | Released: 2026-07-16
Support Ends: 2026-08-15 | {ref}`v11.9 `, {ref}`v11.8 `, {ref}`v11.7 `, {ref}`v10.11 ` | | v2.41 {ref}`FEATURE ` \| [Download](https://github.com/mattermost/mattermost-mobile/releases/tag/v2.41.3) \| {ref}`Changelog ` \| [SBOM download](https://github.com/mattermost/mattermost-mobile/releases/download/v2.41.3/sbom-mattermost-mobile-v2.41.3.json) | Released: 2026-06-16
Support Ends: 2026-07-15 | {ref}`v11.8 `, {ref}`v11.7 `, {ref}`v11.6 `, {ref}`v10.11 ` | | v2.40 {ref}`FEATURE ` \| [Download](https://github.com/mattermost/mattermost-mobile/releases/tag/v2.40.0) \| {ref}`Changelog ` \| [SBOM download](https://github.com/mattermost/mattermost-mobile/releases/download/v2.40.0/sbom-mattermost-mobile-v2.40.0.json) | Released: 2026-05-15
Support Ends: 2026-06-15 | {ref}`v11.7 `, {ref}`v11.6 `, {ref}`v11.5 `, {ref}`v10.11 ` | | v2.39 {ref}`FEATURE ` \| [Download](https://github.com/mattermost/mattermost-mobile/releases/tag/v2.39.0) \| {ref}`Changelog ` \| [SBOM download](https://github.com/mattermost/mattermost-mobile/releases/download/v2.39.0/sbom-mattermost-mobile-v2.39.0.json) | Released: 2026-04-16
Support Ends: 2026-05-15 | {ref}`v11.6 `, {ref}`v11.5 `, {ref}`v11.4 `, {ref}`v10.11 ` | From bb374d34566ff7cb1de47ce04ea2c994307b1362 Mon Sep 17 00:00:00 2001 From: Amy Blais <29708087+amyblais@users.noreply.github.com> Date: Fri, 17 Jul 2026 10:34:32 +0300 Subject: [PATCH 24/28] Update generate_changelog.py (#9099) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Update mattermost-v11-changelog.md (#9098) * Update generate_changelog.py * Update generate_changelog.py * Enhance SAML configuration instructions for Mattermost (#8914) * Enhance SAML configuration instructions for Mattermost Updated instructions for configuring SAML attributes and claims in Entra for Mattermost integration, including detailed explanations of required and additional claims. * Update sso-saml-entraid.rst * Update sso-saml-entraid.rst * Update sso-saml-entraid.rst * Add image for Tenant ID location in Entra Added an image reference for the Tenant ID location in Entra. * Add files via upload * Fix formatting of image attributes in SSO SAML guide * Update source/administration-guide/onboard/sso-saml-entraid.rst Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update source/administration-guide/onboard/sso-saml-entraid.rst Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update source/administration-guide/onboard/sso-saml-entraid.rst Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update source/administration-guide/onboard/sso-saml-entraid.rst Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update source/administration-guide/onboard/sso-saml-entraid.rst Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Add files via upload * Update source/administration-guide/onboard/sso-saml-entraid.rst Make assigning users/groups the default path in step 8; move the "Assignment required? = No" option into a warning directive that notes it grants access to all tenant users and prompts the reader to evaluate fit for their environment. Co-Authored-By: Claude Sonnet 4.6 * Update source/administration-guide/onboard/sso-saml-entraid.rst Clarify Sign Request step to distinguish Mattermost signing outbound AuthnRequests from Entra signing responses/assertions; specify that Entra requires RSA-SHA256 for signed requests; add missing Entra-side step to upload the SP public certificate under Verification certificates. Co-Authored-By: Claude Sonnet 4.6 --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: Claude Sonnet 4.6 Co-authored-by: Combs7th <147677911+Combs7th@users.noreply.github.com> --------- Co-authored-by: Katie Wiersgalla <39744472+wiersgallak@users.noreply.github.com> Co-authored-by: Sven Hüster Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: Claude Sonnet 4.6 Co-authored-by: Combs7th <147677911+Combs7th@users.noreply.github.com> --- .github/scripts/generate_changelog.py | 10 +- .../onboard/sso-saml-entraid.rst | 134 +++++++++++++----- source/images/entra-attributes-and-claims.png | Bin 0 -> 46776 bytes source/images/entra-tenant-id.png | Bin 0 -> 69703 bytes .../mattermost-v11-changelog.md | 2 +- 5 files changed, 108 insertions(+), 38 deletions(-) create mode 100644 source/images/entra-attributes-and-claims.png create mode 100644 source/images/entra-tenant-id.png diff --git a/.github/scripts/generate_changelog.py b/.github/scripts/generate_changelog.py index b336cc43b87..e0cedc0e195 100644 --- a/.github/scripts/generate_changelog.py +++ b/.github/scripts/generate_changelog.py @@ -72,7 +72,7 @@ Adapt the plan name (e.g. "Changes to All plans:", "Changes to Enterprise plan:", "Changes to Enterprise Advanced plan:") and list each setting change as a bullet under the appropriate plan heading. - `#### Compatibility` — minimum version requirement changes for browsers, OS, or clients. Example: "Updated minimum Edge and Chrome versions to 146+." - - `### Improvements` — for new features and enhancements only. Do NOT place items beginning with "Fixed..." here — those belong in Bug Fixes. Begin this section with the line `See [this blog post](BLOG_POST_URL) on the highlights in our latest release.` (use the exact placeholder `BLOG_POST_URL` — it will be replaced automatically), followed by a blank line before the first `####` subsection heading. Then add subsections as applicable: + - `### Improvements` — for new features and enhancements only. Do NOT place items beginning with "Fixed..." here — those belong in Bug Fixes. Begin this section with the line `See BLOG_POST_LINK on the highlights in our latest release.` (use the exact placeholder `BLOG_POST_LINK` — it will be replaced automatically with a Markdown link), followed by a blank line before the first `####` subsection heading. Then add subsections as applicable: - `#### User Interface` — user interface and UX changes and new visual features. Pre-packaged plugin version updates go at the TOP of this subsection, before other items. Always write "user interface" in full — never abbreviate as "UI". - `#### Plugins/Integrations` — plugin and integration improvements (use as a separate subsection when there are enough items to warrant it) - `#### Administration` — System Console features, logging, support packet changes @@ -391,11 +391,13 @@ def main(): polished = polish_with_ai(all_notes) blog_url = os.environ.get("BLOG_POST_URL", "").strip() if not blog_url: - # Auto-construct from version: v11.7.0 → https://mattermost.com/blog/mattermost-v11-7-0-is-now-available/ - version_slug = VERSION.lstrip("v").replace(".", "-") + # Auto-construct short URL (no patch suffix): v11.6.0 → mattermost-v11-6-is-now-available + version_slug = re.sub(r"-\d+$", "", VERSION.lstrip("v").replace(".", "-")) blog_url = f"https://mattermost.com/blog/mattermost-v{version_slug}-is-now-available/" print(f"ℹ️ No blog post URL provided — using auto-constructed URL: {blog_url}") - polished = polished.replace("BLOG_POST_URL", blog_url) + # Format as a Markdown link matching existing changelog style: [this blog post](url) + blog_link = f"[this blog post]({blog_url})" + polished = polished.replace("BLOG_POST_LINK", blog_link) # Inject the Go Version section: replace the placeholder heading the AI outputs, # or insert it before ### Open Source Components / ### Security to preserve # section order, or append at the end if neither anchor exists. diff --git a/source/administration-guide/onboard/sso-saml-entraid.rst b/source/administration-guide/onboard/sso-saml-entraid.rst index 42d7348ffbe..827a382c388 100644 --- a/source/administration-guide/onboard/sso-saml-entraid.rst +++ b/source/administration-guide/onboard/sso-saml-entraid.rst @@ -20,47 +20,115 @@ Prerequisites * A Microsoft Entra tenant containing applicable user data. * A verified custom domain for your tenant. See Microsoft's `Add your custom domain name to your tenant `__ documentation for details. * A Microsoft Entra ID P1 or P2 license. +* An account with at least the **Application Administrator** role in your Entra tenant. Set up an enterprise app for Mattermost SSO in Entra ID -------------------------------------------------------- -1. Log into the Microsoft Azure portal and select the **Microsoft Entra ID** service. -2. In the left menu, select **Manage > Enterprise applications**. -3. Select the **New application** button. -4. In the **Search application** field, search for **Microsoft Entra SAML Toolkit** and select **Microsoft Entra SAML Toolkit**. -5. In the **Name** field, enter **Mattermost SAML** then select the **Create** button. -6. In the **Mattermost SAML** enterprise application settings, select **Manage > Users and Groups** to assign users and/or groups to the application **or** select **Manage > Properties** then set **Assignment required?** to **No** then select **Save**. -7. In the **Mattermost SAML** enterprise application settings, select **Manage > Single sign-on** then select **SAML** under **Select a single sign-on method**. -8. Select **Edit** in the **Basic SAML Configuration section** then set the below fields then select **Save**: +1. Sign in to the `Microsoft Entra admin center `__ with an account that has at least the **Application Administrator** role. +2. In the left navigation menu, select **Entra ID > Enterprise applications**. +3. Select **+ New application**. +4. Select **+ Create your own application**. +5. In the **What's the name of your app?** field, enter **Mattermost**. +6. Under **What are you looking to do with your application?**, select **Integrate any other application you don't find in the gallery (Non-gallery)**. +7. Select **Create**. Entra provisions the application; this may take a few seconds. +8. In the **Mattermost** enterprise application settings, select **Manage > Users and groups**, then assign the approved users and/or groups that should have access to Mattermost. - - **Identity (Entity ID)**: ``https://`` - - **Reply URL (Assertion Consumer Service URL)**: ``https:///login/sso/saml`` - - **Sign on URL**: ``https:///login`` + .. warning:: -9. Select **Edit** in the **Attributes & Claims** section then set the below attributes: + Alternatively, you can select **Manage > Properties**, set **Assignment required?** to **No**, then select **Save**. This grants Mattermost access to **all users in your Entra tenant** — evaluate whether this aligns with your organization's access control requirements before proceeding. +9. In the **Mattermost** enterprise application settings, select **Manage > Single sign-on**, then select **SAML** under **Select a single sign-on method**. +10. Select **Edit** in the **Basic SAML Configuration** section, then set the fields below and select **Save**: - a. Set the the **Unique User Identifier (Name ID)** required claim **Name identifier format** and **Source attribute** values as required for your environment. Setting the **Source attribute** to an immutable value such as ``user.objectid`` is recommended. - b. Edit claim names **and namespaces** under **Additional claims** to match SAML attribute settings you wish to set in Mattermost. Configurable settings are Email, Username, Id, Guest, Admin, First Name, Last Name, Nickname, Position, and Preferred Language. + - **Identifier (Entity ID)**: ``https://`` + - **Reply URL (Assertion Consumer Service URL)**: ``https:///login/sso/saml`` + - **Sign on URL**: ``https:///login`` -.. important:: +11. Select **Edit** in the **Attributes & Claims** section, then configure the required claim and additional claims as described below. - Mattermost matches each attribute by its **full claim name**, including the namespace, exactly as it appears in the SAML assertion. By default, Entra ID emits its built-in claims under the namespace ``http://schemas.xmlsoap.org/ws/2005/05/identity/claims/`` — so the claim that appears in the **Claim name** column as ``emailaddress`` is actually sent in the assertion as ``http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress``. + **How Entra claims map to Mattermost** - This means the value you enter in each Mattermost attribute field (step 15 of **Configure SAML Sign-On for Mattermost**, below) must be the **fully-qualified** claim name. Entering only the short name (for example, ``email`` or ``name``) will **not** match, and login will fail with an error such as ``SAML login was unsuccessful because one of the attributes is incorrect... attribute is missing``. + The SAML assertion Entra sends to Mattermost contains a set of *claims* — name/value pairs describing the user. Mattermost reads these claims based on the attribute names you configure in **System Console > Authentication > SAML 2.0 > Attributes** (for example, **Email Attribute**, **Username Attribute**, **First Name Attribute**). - You have two options: + The **Claim name** you set in Entra must match the value you enter in the corresponding Mattermost attribute field exactly, character for character. The **Value** (also called **Source attribute**) tells Entra which user property to send — for example, ``user.mail`` sends the user's email address. - - **Clear the namespace** on each claim in Entra ID under **Additional claims** so the claim name becomes the short value (for example, ``email``), then enter that same short value in Mattermost; **or** - - **Leave the default namespace** in Entra ID and enter the fully-qualified claim name in Mattermost (for example, ``http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress``). + a. **Required claim — Unique User Identifier (Name ID)** - Whichever option you choose, the value in Mattermost must match the assertion **character-for-character**. If a login fails, the safest way to confirm the exact claim names being sent is to capture and decode the SAML response from the browser (for example, with the `SAML-tracer `__ browser extension) and read the ``Name`` attribute of each ```` element. + Set the **Name identifier format** and **Source attribute** values as required for your environment. The Name ID is part of the SAML assertion, but Mattermost account binding is controlled by the **Id Attribute (SAML)** setting if you configure it, or by email otherwise. If you want immutable user binding in Mattermost, add a separate ``Id`` claim under **Additional claims** and set its **Value** (source attribute) to an immutable Entra attribute such as ``user.objectid``. ``user.userprincipalname`` is also a common choice for Name ID when a human-readable identifier is preferred, with the trade-off that renames in Entra can orphan the corresponding Mattermost account if you rely on it for identity matching. -10. Select **Edit** in the **SAML Certificates** section. Select **Sign SAML response and assertion** for **Signing Option** and **SHA-256** for **Signing Algorithm** then select **Save**. -11. Select the **Certificate (Base64)** Download link in the **SAML Certificates** section. This is the **Identity Provider Public Certificate** to be uploaded to Mattermost. -12. In the **Mattermost SAML** enterprise application settings, select **Security > Token encryption**. Select **Import Certificate** to import the Service Provider certificate. If you used the Bash script referenced in the **Before you begin** section, this is the ``mattermost-x509.crt`` file. The Import dialog says to upload a certificate with a file extension ``.cer``, but ``.crt`` files are also accepted. Upload the file then select **Add**. -13. Select the ``...`` to the right of the imported certificate details, select **Activate token encryption certificate**, then select **Yes** to activate. -14. On the **Home** page for **Microsoft Entra ID**, select the **Overview** link in the left navigation menu and copy the **Tenant ID** value. The **Tenant ID** will be used in Mattermost **SAML 2.0** URL settings. -15. In the left navigation menu, select **Manage > Enterprise applications**. Select the **Mattermost SAML** application then copy the **Application ID**. The **Application ID** will be used in the **Identity Provider Metadata URL** setting in the Mattermost **SAML 2.0** settings. + b. **Additional claims** + + By default, Entra populates this section with four claims using the ``http://schemas.xmlsoap.org/ws/2005/05/identity/claims/...`` namespace. These work, but we recommend replacing them with short, readable names that match the attribute fields in Mattermost. To edit a claim, select it, update the **Name** field (and clear the **Namespace** field), then save. + + .. important:: + + Mattermost matches each attribute by its **full claim name**, including the namespace, exactly as it appears in the SAML assertion. By default, Entra emits its built-in claims under the namespace ``http://schemas.xmlsoap.org/ws/2005/05/identity/claims/`` — so the claim that appears in the **Claim name** column as ``emailaddress`` is actually sent in the assertion as ``http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress``. + + Entering only the short name (for example, ``email`` or ``name``) in a Mattermost attribute field will **not** match, and login will fail with an error such as ``SAML login was unsuccessful because one of the attributes is incorrect... attribute is missing``. + + You have two options: + + - **Clear the namespace** on each claim in Entra ID (the approach shown in the table below) so the claim name becomes the short value (for example, ``email``), then enter that same short value in Mattermost; **or** + - **Leave the default namespace** in Entra ID and enter the fully-qualified claim name in Mattermost (for example, ``http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress``). + + If a login fails, the safest way to confirm the exact claim names being sent is to capture and decode the SAML response from the browser (for example, with the `SAML-tracer `__ browser extension) and read the ``Name`` attribute of each ```` element. + + The following claim configuration covers a typical Mattermost setup (using the clear-namespace option): + + .. list-table:: + :header-rows: 1 + :widths: 30 25 45 + + * - Mattermost attribute field + - Entra claim name + - Entra source attribute + * - Email Attribute + - ``email`` + - ``user.mail`` + * - Username Attribute + - ``username`` + - ``user.mailnickname`` + * - First Name Attribute + - ``firstname`` + - ``user.givenname`` + * - Last Name Attribute + - ``lastname`` + - ``user.surname`` + * - Position Attribute + - ``position`` + - ``user.jobtitle`` + + .. note:: + Use ``user.mailnickname`` rather than ``user.userprincipalname`` as the source for the username claim. The user principal name is typically formatted as an email address (``user@domain.com``), but Mattermost usernames cannot contain the ``@`` character, so SAML logins using ``user.userprincipalname`` will fail. The mail nickname is the local part of the email address (the portion before ``@``) and maps cleanly to a valid Mattermost username. + + If your organization doesn't populate ``mailnickname`` consistently, another option is a custom Entra attribute or a transformation that strips the domain from the UPN. + + After editing, your **Attributes & Claims** page should look similar to the screenshot below: + + .. image:: ../../images/entra-attributes-and-claims.png + :alt: Entra Attributes & Claims page showing simplified claim names + :width: 100% + + The **Guest**, **Admin**, **Nickname**, and **Preferred Language** attributes are also configurable in Mattermost if you want to drive them from Entra. Use the same pattern: pick a short claim name in Entra, set its source attribute, and enter the matching claim name in the corresponding Mattermost attribute field. + +12. Select **Edit** in the **SAML Certificates** section. Select **Sign SAML response and assertion** for **Signing Option** and **SHA-256** for **Signing Algorithm**, then select **Save**. +13. Select the **Certificate (Base64)** Download link in the **SAML Certificates** section. This is the **Identity Provider Public Certificate** to be uploaded to Mattermost. +14. In the **Mattermost** enterprise application settings, select **Security > Token encryption**. Select **Import Certificate** to import the Service Provider certificate. If you used the Bash script referenced in the **Before you begin** section, this is the ``mattermost-x509.crt`` file. The Import dialog says to upload a certificate with a file extension ``.cer``, but ``.crt`` files are also accepted. Upload the file then select **Add**. +15. Select the ``...`` to the right of the imported certificate details, select **Activate token encryption certificate**, then select **Yes** to activate. +16. Copy the **Tenant ID** for use in the Mattermost **SAML 2.0** URL settings. + + .. note:: + Entra exposes three different GUIDs during this setup, and it's easy to confuse them. The **Tenant ID** identifies your entire Entra directory, while the **Application ID** and **Object ID** (visible on the enterprise application's **Properties** page) identify the Mattermost SAML application within that directory. Mattermost uses the Tenant ID and Application ID; the Object ID is not used. + + To find the Tenant ID, select **Entra ID** from the admin center home, then locate the **Tenant ID** value in the **Basic information** panel on the **Overview** page. + + .. image:: ../../images/entra-tenant-id.png + :alt: Where to find the Tenant ID + :width: 100% + +17. Copy the **Application ID** for use in the **Identity Provider Metadata URL** setting in the Mattermost **SAML 2.0** settings. + + To find the Application ID, select **Entra ID > Enterprise applications** from the left navigation menu, select the **Mattermost** application, then copy the **Application ID** from the **Properties** page (shown alongside the Object ID, which is not needed). Configure SAML Sign-On for Mattermost -------------------------------------- @@ -71,20 +139,20 @@ Configure SAML Sign-On for Mattermost 4. Select **Get SAML Metadata From IdP** to verify that the SAML metadata can be retrieved successfully. 5. Set **SAML SSO URL**: ``https://login.microsoftonline.com//saml2`` 6. Set **Identity Provider Issuer URL** (trailing slash is required): ``https://sts.windows.net//`` -7. Choose the **Identity Provider Public Certificate** file from step 11 of **Set up an enterprise app for Mattermost SSO in Entra ID** then upload. +7. Choose the **Identity Provider Public Certificate** file from step 13 of **Set up an enterprise app for Mattermost SSO in Entra ID** then upload. 8. Set **Verify Signature** to **True**. 9. Set **Service Provider Login URL**: ``https:///login/sso/saml`` 10. Set **Service Provider Identifier**: ``https://`` -11. Set **Enable Encryption** to **True** -12. Choose your **Service Provider Private Key** file then upload. If you used the Bash script referenced in the **Before you begin** section, this is the ``mattermost-x509.key`` file. +11. Set **Enable Encryption** to **True**. +12. Choose your **Service Provider Private Key** file then upload. If you used the Bash script referenced in the **Before you begin** section, this is the ``mattermost-x509.key`` file. 13. Choose your **Service Provider Public Certificate** then upload. If you used the Bash script referenced in the **Before you begin** section, this is the ``mattermost-x509.crt`` file. -14. Set **Sign Request** to suit your environment. The **Signature Algorithm** must match the algorithm set in Entra ID (**RSAwithSHA256** is recommended). +14. Set **Sign Request** to **True** if you want Mattermost to sign outbound AuthnRequests sent to Entra ID — this is distinct from Entra signing its SAML responses and assertions (configured in step 12 of the Entra setup). If enabled, set **Signature Algorithm** to **RSAwithSHA256** (Entra ID requires RSA-SHA256 for signed requests) and upload Mattermost's public certificate to Entra ID for request verification: in the enterprise application, select **SAML Certificates**, then upload the ``mattermost-x509.crt`` file under **Verification certificates**. .. note:: The **Test single sign-on with Mattermost SAML** tool in Microsoft Entra ID does not sign the request even if **Sign Request** is set to **True** in Mattermost. Depending on your security settings and key length, the Entra ID testing tool may successfully sign in while an actual sign in request from your Mattermost login page results in the error **AADSTS90015: Requested query string is too long.** since Entra ID handles the initial request with an HTTP GET redirect rather than HTTP POST. -15. Set attribute settings to match attributes configured in step 9 of the **Set up an enterprise app for Mattermost SSO in Entra ID** section. Each value must match the **full claim name** sent in the assertion, including the namespace, exactly. See the **important** note under step 9 for details and a common failure mode. +15. Set attribute settings to match the attributes configured in step 11 of the **Set up an enterprise app for Mattermost SSO in Entra ID** section. Each value must match the **full claim name** sent in the assertion, including the namespace, exactly. See the **important** note under step 11 for details and a common failure mode. 16. Set the **Login Button Text** to suit your environment. 17. Select the **Save** button. @@ -92,4 +160,4 @@ Configure SAML Sign-On for Mattermost :start-after: :nosearch: .. include:: sso-saml-faq.rst - :start-after: :nosearch: \ No newline at end of file + :start-after: :nosearch: diff --git a/source/images/entra-attributes-and-claims.png b/source/images/entra-attributes-and-claims.png new file mode 100644 index 0000000000000000000000000000000000000000..6bad055debd57436e9d7dc0f3364029bb530db92 GIT binary patch literal 46776 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ΞEx~i=L3b7{O(>)8bT+v4iQ+Mg>FG8Z*NU@U+Nqok zyCM+QjLAdWv|VE2Q05~0 z8zdwplRxWZw(c&X-jzEM$(pYslYlMTZP`$iQ`Ds`yr;3bcSX90l~esJ^xvY6%a<%1 zI7y~f-~`dQNq+i$)1ik)Va)R#Zc+RgfX4zpAf#dNN&^{6@r;g*$y;M>k@NBb2d-;G z*eMWy6tmK2o06hr7oLH!ke4SKeZ=2pr9qn;DzK(60nXPs-Pmd^sio!lC4$p^v@1EG zkat65L!k3&CQhDZMAn?<;>A1&c22>+^7D}uHeXm<`)U6t_RZ@rUCO}+?%V1y#V_`t zccOc4rKZ}SL{{9VDqME)OLp8O3spV~daAr2gWY+jg8bM_i{{#5E73-)hBd`P?brXr lmHpnF_@8Y5H}K_(?%b5Z_Fy>$d)8+*(l^&DI^=ZiKLBHT3!VS~ literal 0 HcmV?d00001 diff --git a/source/images/entra-tenant-id.png b/source/images/entra-tenant-id.png new file mode 100644 index 0000000000000000000000000000000000000000..8e815e9eec64ee901bb09fbab5298a90eb10891d GIT binary patch literal 69703 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

<_nu$1BG#eMs|O0_ig1`43lm%4yqu@=?$= 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 literal 0 HcmV?d00001 diff --git a/source/product-overview/mattermost-v11-changelog.md b/source/product-overview/mattermost-v11-changelog.md index 94a56e88d05..64bc6db23c1 100644 --- a/source/product-overview/mattermost-v11-changelog.md +++ b/source/product-overview/mattermost-v11-changelog.md @@ -56,7 +56,7 @@ If you upgrade from a release earlier than v11.8, please read the other [Importa ``` ### Improvements -See [this blog post](https://mattermost.com/blog/mattermost-v11-9-0-is-now-available/) on the highlights in our latest release. +See [this blog post](https://mattermost.com/blog/mattermost-v11-9-is-now-available/) on the highlights in our latest release. #### User Interface - Pre-packaged Jira plugin version [v4.7.1](https://github.com/mattermost/mattermost-plugin-jira/releases/tag/v4.7.1). From 4dadc65fc8192a7c216da22e9b64979af1fc655a Mon Sep 17 00:00:00 2001 From: Amy Blais <29708087+amyblais@users.noreply.github.com> Date: Fri, 17 Jul 2026 10:35:30 +0300 Subject: [PATCH 25/28] Update mobile-app-changelog.md --- source/product-overview/mobile-app-changelog.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/source/product-overview/mobile-app-changelog.md b/source/product-overview/mobile-app-changelog.md index 1dd0c8d8773..d4b855abc44 100644 --- a/source/product-overview/mobile-app-changelog.md +++ b/source/product-overview/mobile-app-changelog.md @@ -10,6 +10,23 @@ This changelog summarizes updates to Mattermost mobile apps releases for [Matter Platform and OS scope reflects reported and tested environments and may not represent all affected configurations. ``` +(release-v2-42-1)= +## 2.42.1 Release + - Release Date: July 17, 2026 + - Server Versions Supported: Server v10.11.0+ is required. Self-Signed SSL certificates are not supported unless the user installs the CA certificate on their device. + +### Compatibility + - **Upgrade to server version v10.11.0 or later is required.** Support for server [Extended Support Release](https://docs.mattermost.com/product-overview/release-policy.html#extended-support-releases) (ESR) v10.5.0 has ended and upgrading to server ESR v10.11.0 or later is required. As we innovate and offer newer versions of our mobile apps, we maintain backwards compatibility only with supported server versions. Users who upgrade to the newest mobile apps while being connected to an unsupported server version can be exposed to compatibility issues, which can cause crashes or severe bugs that break core functionality of the app. + - Android operating system 7+ [is required by Google](https://android-developers.googleblog.com/2017/12/improving-app-security-and-performance.html). + - iPhone 8+ devices and later with iOS 16.0+ are [required](https://support.apple.com/en-il/guide/iphone/iphe3fa5df43/16.0/ios/16.0). + +### Bug Fixes + - Fixed an issue when logging in with numeric only IDs. + +### Known Issues + - Users are unable to adjust the font size via the OS font size setting. + - Some Google Pixel phones on Android 12+ might not continue past the login screen. This is a known issue with the OS, and the current workaround is to restart the device. + (release-v2-42-0)= ## 2.42.0 Release - Release Date: July 16, 2026 From 9f03fc5f14962ee232bb7766896b896d3bfb44ba Mon Sep 17 00:00:00 2001 From: Amy Blais <29708087+amyblais@users.noreply.github.com> Date: Fri, 17 Jul 2026 10:45:50 +0300 Subject: [PATCH 26/28] Update mattermost-v10-changelog.md --- source/product-overview/mattermost-v10-changelog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/product-overview/mattermost-v10-changelog.md b/source/product-overview/mattermost-v10-changelog.md index 00d356b65e1..75000776aad 100644 --- a/source/product-overview/mattermost-v10-changelog.md +++ b/source/product-overview/mattermost-v10-changelog.md @@ -85,7 +85,7 @@ If you upgrade from a release earlier than v10.10, please read the other [Import - Customers should not upgrade from ``>=10.11.17`` to ``<=11.7.2`` due to a bug that causes an issue with database migration numbers. The bug is fixed in v11.7.3. ``` -- **10.11.22, released 2026-07-15** +- **10.11.22, released 2026-07-17** - Mattermost v10.11.22 contains low to high severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.html) to this release is recommended. Details will be posted on our [security updates page](https://mattermost.com/security-updates/) 30 days after release as per the [Mattermost Responsible Disclosure Policy](https://mattermost.com/security-vulnerability-report/). - Pre-packaged Playbooks plugin version [v2.4.7](https://github.com/mattermost/mattermost-plugin-playbooks/releases/tag/v2.4.7). - Pre-packaged Jira plugin version [v4.7.1](https://github.com/mattermost/mattermost-plugin-jira/releases/tag/v4.7.1). From 3af800bf6809a6c8a1f13c44d6c3b7245d25a5c0 Mon Sep 17 00:00:00 2001 From: Amy Blais <29708087+amyblais@users.noreply.github.com> Date: Fri, 17 Jul 2026 10:46:15 +0300 Subject: [PATCH 27/28] 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 64bc6db23c1..c72a1ac82ca 100644 --- a/source/product-overview/mattermost-v11-changelog.md +++ b/source/product-overview/mattermost-v11-changelog.md @@ -180,7 +180,7 @@ See [this blog post](https://mattermost.com/blog/mattermost-v11-9-is-now-availab (release-v11.8-feature-release)= ## Release v11.8 - [Feature Release](https://docs.mattermost.com/product-overview/release-policy.html#release-types) -- **11.8.4, released 2026-07-15** +- **11.8.4, released 2026-07-17** - Mattermost v11.8.4 contains medium to high severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.html) to this release is recommended. Details will be posted on our [security updates page](https://mattermost.com/security-updates/) 30 days after release as per the [Mattermost Responsible Disclosure Policy](https://mattermost.com/security-vulnerability-report/). - Pre-packaged Boards plugin version [v9.2.6](https://github.com/mattermost/mattermost-plugin-boards/releases/tag/v9.2.6). - Mattermost v11.8.4 contains no database or functional changes. @@ -367,7 +367,7 @@ See [this blog post](https://mattermost.com/blog/mattermost-v11-8-0-is-now-avail (release-v11.7-extended-support-release)= ## Release v11.7 - [Extended Support Release](https://docs.mattermost.com/product-overview/release-policy.html#release-types) -- **11.7.7, released 2026-07-15** +- **11.7.7, released 2026-07-17** - Mattermost v11.7.7 contains low to high severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.html) to this release is recommended. Details will be posted on our [security updates page](https://mattermost.com/security-updates/) 30 days after release as per the [Mattermost Responsible Disclosure Policy](https://mattermost.com/security-vulnerability-report/). - Pre-packaged Playbooks plugin version [v2.9.2](https://github.com/mattermost/mattermost-plugin-playbooks/releases/tag/v2.9.2). - Pre-packaged Jira plugin version [v4.7.1](https://github.com/mattermost/mattermost-plugin-jira/releases/tag/v4.7.1). From 8663ec16b10e91e5e2288deb6abb1524302bfb52 Mon Sep 17 00:00:00 2001 From: Amy Blais <29708087+amyblais@users.noreply.github.com> Date: Fri, 17 Jul 2026 10:47:35 +0300 Subject: [PATCH 28/28] Update version-archive.rst --- source/product-overview/version-archive.rst | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/source/product-overview/version-archive.rst b/source/product-overview/version-archive.rst index 4e68a0b947b..3f3384be56e 100644 --- a/source/product-overview/version-archive.rst +++ b/source/product-overview/version-archive.rst @@ -18,12 +18,12 @@ If you want to check that the version of Mattermost you are installing is the of - SBOM Download Link: https://releases.mattermost.com/11.9.0/sbom-enterprise-v11.9.0.json Mattermost Enterprise Edition v11.8.4 - `View Changelog `__ - `Download `__ - ``https://releases.mattermost.com/11.8.4/mattermost-11.8.4-linux-amd64.tar.gz`` - - SHA-256 Checksum: ``TBD`` + - SHA-256 Checksum: ``a1809895094cae12c9d091b97380daf0fff9530ff61e50990aa03db58f67eaa1`` - GPG Signature: https://releases.mattermost.com/11.8.4/mattermost-11.8.4-linux-amd64.tar.gz.sig - SBOM Download Link: https://releases.mattermost.com/11.8.4/sbom-enterprise-v11.8.4.json Mattermost Enterprise Edition v11.7.7 *Extended Support Release (ESR)* - `View Changelog `__ - `Download `__ - ``https://releases.mattermost.com/11.7.7/mattermost-11.7.7-linux-amd64.tar.gz`` - - SHA-256 Checksum: ``TBD`` + - SHA-256 Checksum: ``e498312ed51ab0d91a1b0f79bc927ef6b0b0b6cbc7905d8c96a7f9d329ea6d7c`` - GPG Signature: https://releases.mattermost.com/11.7.7/mattermost-11.7.7-linux-amd64.tar.gz.sig - SBOM Download Link: https://releases.mattermost.com/11.7.7/sbom-enterprise-v11.7.7.json Mattermost Enterprise Edition v11.6.6 - `View Changelog `__ - `Download `__ @@ -68,7 +68,7 @@ If you want to check that the version of Mattermost you are installing is the of - SBOM Download Link: https://releases.mattermost.com/10.12.4/sbom-enterprise-v10.12.4.json Mattermost Enterprise Edition v10.11.22 *Extended Support Release (ESR)* - `View Changelog `__ - `Download `__ - ``https://releases.mattermost.com/10.11.22/mattermost-10.11.22-linux-amd64.tar.gz`` - - SHA-256 Checksum: ``TBD`` + - SHA-256 Checksum: ``e2259cea0c6395334e1be3c745c615cc276145f1e078a884e1af6147e101fed1`` - GPG Signature: https://releases.mattermost.com/10.11.22/mattermost-10.11.22-linux-amd64.tar.gz.sig - SBOM Download Link: https://releases.mattermost.com/10.11.22/sbom-enterprise-v10.11.22.json Mattermost Enterprise Edition v10.10.3 - `View Changelog `__ - `Download `__ @@ -501,12 +501,12 @@ If you want to check that the version of Mattermost you are installing is the of - SBOM Download Link: https://github.com/mattermost/mattermost/releases/download/v11.9.0/sbom-mattermost-v11.9.0.json Mattermost Team Edition v11.8.4 - `View Changelog `__ - `Download `__ - ``https://releases.mattermost.com/11.8.4/mattermost-team-11.8.4-linux-amd64.tar.gz`` - - SHA-256 Checksum: ``TBD`` + - SHA-256 Checksum: ``553d6b36073125f84a283ccf4cc50c270a71be21024274b5c35e4a1d12bf49c1`` - GPG Signature: https://releases.mattermost.com/11.8.4/mattermost-team-11.8.4-linux-amd64.tar.gz.sig - SBOM Download Link: https://github.com/mattermost/mattermost/releases/download/v11.8.4/sbom-mattermost-v11.8.4.json Mattermost Team Edition v11.7.7 *Extended Support Release (ESR)* - `View Changelog `__ - `Download `__ - ``https://releases.mattermost.com/11.7.7/mattermost-team-11.7.7-linux-amd64.tar.gz`` - - SHA-256 Checksum: ``TBD`` + - SHA-256 Checksum: ``8324eee1f979863883a9c8e71112f2ec127037da81f4efb90639b56187c6b0f7`` - GPG Signature: https://releases.mattermost.com/11.7.7/mattermost-team-11.7.7-linux-amd64.tar.gz.sig - SBOM Download Link: https://github.com/mattermost/mattermost/releases/download/v11.7.7/sbom-mattermost-v11.7.7.json Mattermost Team Edition v11.6.6 - `View Changelog `__ - `Download `__ @@ -551,7 +551,7 @@ If you want to check that the version of Mattermost you are installing is the of - SBOM Download Link: https://github.com/mattermost/mattermost/releases/download/v10.12.4/sbom-mattermost-v10.12.4.json Mattermost Team Edition v10.11.22 *Extended Support Release (ESR)* - `View Changelog `__ - `Download `__ - ``https://releases.mattermost.com/10.11.22/mattermost-team-10.11.22-linux-amd64.tar.gz`` - - SHA-256 Checksum: ``TBD`` + - SHA-256 Checksum: ``5aa384716f0ee2be99c03d4d5af8e488a090a63caca2b78f539a1e199fde5452`` - GPG Signature: https://releases.mattermost.com/10.11.22/mattermost-team-10.11.22-linux-amd64.tar.gz.sig - SBOM Download Link: https://github.com/mattermost/mattermost/releases/download/v10.11.22/sbom-mattermost-v10.11.22.json Mattermost Team Edition v10.10.3 - `View Changelog `__ - `Download `__