diff --git a/source/administration-guide/upgrade/important-upgrade-notes.rst b/source/administration-guide/upgrade/important-upgrade-notes.rst index 9089cb64544..70e0ab0411c 100644 --- a/source/administration-guide/upgrade/important-upgrade-notes.rst +++ b/source/administration-guide/upgrade/important-upgrade-notes.rst @@ -12,6 +12,154 @@ We recommend reviewing the `additional upgrade notes <#additional-upgrade-notes> | If you're upgrading | Then... | | from a version earlier than... | | +====================================================+==================================================================================================================================================================+ +| v11.8 | Added a new ``Version`` column to the ``PropertyGroups`` table to distinguish PSAv1 (legacy) groups from PSAv2 groups. Existing groups default to version 1, | +| | preserving current behavior for all legacy callers. ``PropertyGroups`` is a small configuration-like table, and the ``ADD COLUMN ... DEFAULT 1 NOT NULL`` is a | +| | metadata-only operation in PostgreSQL — no table rewrite occurs and the ``AccessExclusiveLock`` on ``PropertyGroups`` is held only for milliseconds. The | +| | migrations are fully backwards-compatible and no database downtime is expected for this upgrade. The SQL queries included are: | +| | | +| | .. code-block:: sql | +| | | +| | -- Pre-upgrade schema changes (Mattermost 11.8). | +| | | +| | ALTER TABLE PropertyGroups ADD COLUMN IF NOT EXISTS Version integer DEFAULT 1 NOT NULL; | +| +------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | Raised the PostgreSQL planner statistics target for ``posts.rootid`` and ``posts.channelid`` from the default 100 to 5000, and refreshes planner statistics | +| | with ``ANALYZE posts (rootid, channelid)``. The ``ALTER COLUMN ... SET STATISTICS`` statements are metadata-only operations that acquire only a | +| | ``SHARE UPDATE EXCLUSIVE`` lock — no table rewrite occurs and concurrent SELECT, INSERT, UPDATE, and DELETE on ``posts`` remain unblocked. The ``ANALYZE`` step | +| | may take several minutes on large ``posts`` tables (100M+ rows) due to the larger sample size, but does not block reads or writes. The migrations are fully | +| | backwards-compatible and no database downtime is expected for this upgrade. The SQL queries included are: | +| | | +| | .. code-block:: sql | +| | | +| | ALTER TABLE posts ALTER COLUMN rootid SET STATISTICS 5000; | +| | ALTER TABLE posts ALTER COLUMN channelid SET STATISTICS 5000; | +| | ANALYZE posts (rootid, channelid); | +| +------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | Extended the ``channel_type`` enum with two new values: ``'BO'`` and ``'BP'``. The ``ALTER TYPE ... ADD VALUE`` statements acquire a brief | +| | ``AccessExclusiveLock`` on the ``channel_type`` type only — no table rewrite occurs and no row-level locking is applied to the ``channels`` table, making the | +| | operation near-instant. The migrations are fully backwards-compatible and no database downtime is expected for this upgrade. The SQL queries included are: | +| | | +| | .. code-block:: sql | +| | | +| | ALTER TYPE channel_type ADD VALUE IF NOT EXISTS 'BO'; | +| | ALTER TYPE channel_type ADD VALUE IF NOT EXISTS 'BP'; | +| +------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | Introduced four schema migrations to the property and attribute system (``PropertyFields``, ``PropertyGroups``, ``AttributeView``) as part of the same release | +| | cycle. Migrations 000168 and 000169 add a nullable ``LinkedFieldID varchar(26)`` column to ``PropertyFields`` and a partial concurrent index over it, enabling | +| | fields to reference another field as a link. Migrations 000176 and 000177 promote the existing Custom Profile Attributes property group to a more general | +| | ``access_control`` group by updating permission columns on ``PropertyFields`` rows, renaming the ``PropertyGroups`` entry from ``custom_profile_attributes`` to | +| | ``access_control``, and narrowing the ``AttributeView`` materialized view to user-scoped attributes only. **Migrations 000176 and 000177 must ship together.** | +| | None of the affected tables are in the large-table list — the property system tables are small. Note: during the rolling-upgrade window, old-ESR nodes | +| | hard-coding ``'custom_profile_attributes'`` as the group lookup key will experience transient failures on CPA profile read/write endpoints and the ABAC | +| | policy-management admin UI; end-user channel access and the membership sync worker are unaffected. The migrations are fully backwards-compatible and no database | +| | downtime is expected for this upgrade. The SQL queries included are: | +| | | +| | .. code-block:: sql | +| | | +| | -- 000168: Add LinkedFieldID column | +| | ALTER TABLE PropertyFields ADD COLUMN IF NOT EXISTS LinkedFieldID varchar(26); | +| | | +| | -- 000169: Create partial index on LinkedFieldID | +| | CREATE INDEX CONCURRENTLY idx_propertyfields_linkedfieldid ON PropertyFields(LinkedFieldID) WHERE LinkedFieldID IS NOT NULL AND DeleteAt = 0; | +| | | +| | -- 000176: Migrate CPA to access_control | +| | UPDATE PropertyFields SET ObjectType = 'user' WHERE GroupID = (SELECT Id FROM PropertyGroups WHERE Name = 'custom_profile_attributes'); | +| | UPDATE PropertyGroups SET Name = 'access_control', Version = 2 WHERE Name = 'custom_profile_attributes'; | +| | | +| | -- 000177: Refresh AttributeView with user-scoped filter | +| | DROP MATERIALIZED VIEW AttributeView; | +| | CREATE MATERIALIZED VIEW AttributeView ... WHERE pf.ObjectType = 'user'; | +| +------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | Mattermost v11.8 introduces schema changes to the ``Recaps`` table in the form of a new ``ViewedAt`` column and a new index on ``(UserId, ViewedAt)``. The column| +| | is added as a metadata-only operation, and the index is created using ``CONCURRENTLY``, meaning no table locks are acquired and existing operations on the table | +| | are not impacted. The migrations are fully backwards-compatible and no database downtime is expected for this upgrade. The SQL queries included are: | +| | | +| | .. code-block:: sql | +| | | +| | -- 000172_add_recaps_viewed_at.up.sql | +| | ALTER TABLE Recaps ADD COLUMN IF NOT EXISTS ViewedAt BIGINT NOT NULL DEFAULT 0; | +| | | +| | -- 000172_add_recaps_viewed_at.down.sql | +| | ALTER TABLE Recaps DROP COLUMN IF EXISTS ViewedAt; | +| | | +| | -- 000173_create_recaps_user_id_viewed_at_index.up.sql | +| | -- morph:nontransactional | +| | CREATE INDEX CONCURRENTLY IF NOT EXISTS idx_recaps_user_id_viewed_at ON Recaps(UserId, ViewedAt); | +| | | +| | -- 000173_create_recaps_user_id_viewed_at_index.down.sql | +| | -- morph:nontransactional | +| | DROP INDEX CONCURRENTLY IF EXISTS idx_recaps_user_id_viewed_at; | +| +------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | Mattermost v11.8 introduces six schema changes supporting a new channel join request workflow and discoverable private channels. A ``Discoverable`` boolean | +| | column (``DEFAULT FALSE``) is added to the ``Channels`` table as a metadata-only operation that completes instantaneously on PostgreSQL 11+. A new | +| | ``ChannelJoinRequests`` table is created to manage access request workflows, tracking request status, denial reasons, and reviewer information. Four concurrent | +| | indexes are then added: a partial index on ``Channels`` for discoverable team channels (``idx_channels_discoverable_team``), a unique partial index on | +| | ``ChannelJoinRequests`` for pending requests (``idx_channeljoinrequests_pending_unique``), and two composite indexes optimizing queries by channel+status and | +| | user+status respectively. All index operations use ``CONCURRENTLY`` and must be run outside explicit transaction blocks. These migrations are PostgreSQL-only. | +| | The migrations are fully backwards-compatible and no database downtime is expected for this upgrade. The SQL queries included are: | +| | | +| | .. code-block:: sql | +| | | +| | -- Migration 000178: Add Discoverable column | +| | ALTER TABLE Channels ADD COLUMN IF NOT EXISTS Discoverable BOOLEAN NOT NULL DEFAULT FALSE; | +| | | +| | .. code-block:: sql | +| | | +| | -- Migration 000179: Partial index for discoverable channels | +| | -- Run outside a transaction block. | +| | CREATE INDEX CONCURRENTLY IF NOT EXISTS idx_channels_discoverable_team | +| | ON Channels (TeamId) | +| | WHERE Discoverable = TRUE AND Type = 'P' AND DeleteAt = 0; | +| | | +| | .. code-block:: sql | +| | | +| | -- Migration 000180: Create ChannelJoinRequests table | +| | CREATE TABLE IF NOT EXISTS ChannelJoinRequests ( | +| | Id VARCHAR(26) PRIMARY KEY, | +| | ChannelId VARCHAR(26) NOT NULL, | +| | UserId VARCHAR(26) NOT NULL, | +| | Message TEXT NOT NULL DEFAULT '', | +| | Status VARCHAR(16) NOT NULL DEFAULT 'pending', | +| | DenialReason TEXT NOT NULL DEFAULT '', | +| | CreateAt BIGINT NOT NULL, | +| | UpdateAt BIGINT NOT NULL, | +| | ReviewedBy VARCHAR(26) NOT NULL DEFAULT '', | +| | ReviewedAt BIGINT NOT NULL DEFAULT 0 | +| | ); | +| | | +| | .. code-block:: sql | +| | | +| | -- Migration 000181: Unique index for pending requests | +| | -- Run outside a transaction block. | +| | CREATE UNIQUE INDEX CONCURRENTLY IF NOT EXISTS idx_channeljoinrequests_pending_unique | +| | ON ChannelJoinRequests (ChannelId, UserId) | +| | WHERE Status = 'pending'; | +| | | +| | .. code-block:: sql | +| | | +| | -- Migration 000182: Index for channel+status queries | +| | -- Run outside a transaction block. | +| | CREATE INDEX CONCURRENTLY IF NOT EXISTS idx_channeljoinrequests_channel_status_createat | +| | ON ChannelJoinRequests (ChannelId, Status, CreateAt DESC); | +| | | +| | .. code-block:: sql | +| | | +| | -- Migration 000183: Index for user+status queries | +| | -- Run outside a transaction block. | +| | CREATE INDEX CONCURRENTLY IF NOT EXISTS idx_channeljoinrequests_user_status_createat | +| | ON ChannelJoinRequests (UserId, Status, CreateAt DESC); | +| +------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | Mattermost v11.8 extends the ``permission_level`` PostgreSQL enum type to include an ``admin`` value alongside the existing ``none``, ``sysadmin``, and | +| | ``member`` values. This is a pure catalog change ``— ALTER TYPE ADD VALUE`` updates only the ``pg_type`` system catalog and does not touch the ``PropertyFields``| +| | table or any other application table. No columns, indexes, or table data are modified by the up migration. The change enables a new admin-level permission tier | +| | in the property field access control model. The migrations are fully backwards-compatible and no database downtime is expected for this upgrade. The SQL queries | +| | included are: | +| | | +| | .. code-block:: sql | +| | | +| | -- 000189_add_admin_to_permission_level.up.sql | +| | ALTER TYPE permission_level ADD VALUE IF NOT EXISTS 'admin'; | ++----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | v11.7 | FIPS builds require a minimum of 14 characters for passwords, atmos/camo proxy configuration, and shared channel secrets. Shorter passwords for existing users | | | will no longer be valid and require a password reset. Non-FIPS builds are unaffected. | | +------------------------------------------------------------------------------------------------------------------------------------------------------------------+ diff --git a/source/administration-guide/upgrade/open-source-components.rst b/source/administration-guide/upgrade/open-source-components.rst index d4ff8411740..2acb77f5446 100644 --- a/source/administration-guide/upgrade/open-source-components.rst +++ b/source/administration-guide/upgrade/open-source-components.rst @@ -39,6 +39,7 @@ Desktop Mobile ------- +- Mattermost Mobile v2.41.0 - `View Open Source Components `__. - Mattermost Mobile v2.40.0 - `View Open Source Components `__. - Mattermost Mobile v2.39.0 - `View Open Source Components `__. - Mattermost Mobile v2.38.0 - `View Open Source Components `__. @@ -140,6 +141,7 @@ Mobile Server ------------------------------ +- Mattermost Enterprise Edition v11.8.0 - `View Open Source Components `__. - Mattermost Enterprise Edition v11.7.0 - `View Open Source Components `__. - Mattermost Enterprise Edition v11.6.0 - `View Open Source Components `__. - Mattermost Enterprise Edition v11.5.0 - `View Open Source Components `__. diff --git a/source/deployment-guide/server/linux/deploy-rhel.rst b/source/deployment-guide/server/linux/deploy-rhel.rst index 2c0c62d9209..ebe0c159943 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.7.2/mattermost-11.7.2-linux-amd64.tar.gz + wget https://releases.mattermost.com/11.8.0/mattermost-11.8.0-linux-amd64.tar.gz .. tab:: Current ESR diff --git a/source/deployment-guide/server/linux/deploy-tar.rst b/source/deployment-guide/server/linux/deploy-tar.rst index fa5b6693e16..b5d9f2f503b 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.7.2/mattermost-11.7.2-linux-amd64.tar.gz + wget https://releases.mattermost.com/11.8.0/mattermost-11.8.0-linux-amd64.tar.gz .. tab:: Current ESR diff --git a/source/product-overview/mattermost-desktop-releases.md b/source/product-overview/mattermost-desktop-releases.md index f1a8ef38b85..20c16081dd5 100644 --- a/source/product-overview/mattermost-desktop-releases.md +++ b/source/product-overview/mattermost-desktop-releases.md @@ -18,7 +18,7 @@ Mattermost releases a new desktop app version every 4 months, in February, May, | **Release** | **Support** | **Compatible with** | |:---|:---|:---| -| v6.2 [Download](https://github.com/mattermost/desktop/releases/tag/v6.2.0) \| {ref}`Changelog ` \| [SBOM download](https://github.com/mattermost/desktop/releases/download/v6.2.0/sbom-desktop-v6.2.0.json) | Released: 2026-05-15
Support Ends: 2027-05-15 {ref}`EXTENDED ` | {ref}`v11.7 `, {ref}`v11.6 `, {ref}`v11.5 `, {ref}`v10.11 ` | +| v6.2 [Download](https://github.com/mattermost/desktop/releases/tag/v6.2.0) \| {ref}`Changelog ` \| [SBOM download](https://github.com/mattermost/desktop/releases/download/v6.2.0/sbom-desktop-v6.2.0.json) | Released: 2026-05-15
Support Ends: 2027-05-15 {ref}`EXTENDED ` | {ref}`v11.8 `, {ref}`v11.7 `, {ref}`v11.6 `, {ref}`v11.5 `, {ref}`v10.11 ` | | v6.1 [Download](https://github.com/mattermost/desktop/releases/tag/v6.1.2) \| {ref}`Changelog ` \| [SBOM download](https://github.com/mattermost/desktop/releases/download/v6.1.2/sbom-desktop-v6.1.2.json) | Released: 2026-03-02
Support Ends: 2026-05-15 | {ref}`v11.6 `, {ref}`v11.5 `, {ref}`v11.4 `, {ref}`v11.3 `, {ref}`v11.2 `, {ref}`v10.11 ` | | v6.0 [Download](https://github.com/mattermost/desktop/releases/tag/v6.0.4) \| {ref}`Changelog ` \| [SBOM download](https://github.com/mattermost/desktop/releases/download/v6.0.4/sbom-desktop-v6.0.4.json) | Released: 2025-11-14
Support Ends: 2026-03-15 | {ref}`v11.4 `, {ref}`v11.3 `, {ref}`v11.2 `, {ref}`v11.1 `, {ref}`v11.0 `, {ref}`v10.12 `, {ref}`v10.11 ` | | v5.13 [Download](https://github.com/mattermost/desktop/releases/tag/v5.13.6) \| {ref}`Changelog ` \| [SBOM download](https://github.com/mattermost/desktop/releases/download/v5.13.6/sbom-desktop-v5.13.6.json) | Released: 2025-08-15
Support Ends: 2026-08-15 {ref}`EXTENDED ` | {ref}`v11.0 `, {ref}`v10.12 `, {ref}`v10.11 `, {ref}`v10.10 `, {ref}`v10.9 `, {ref}`v10.5 ` | diff --git a/source/product-overview/mattermost-server-releases.md b/source/product-overview/mattermost-server-releases.md index 162a8b9fc33..2f0852bfba7 100644 --- a/source/product-overview/mattermost-server-releases.md +++ b/source/product-overview/mattermost-server-releases.md @@ -19,6 +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.0/mattermost-11.8.0-linux-amd64.tar.gz) \| {ref}`Changelog ` \|
SBOM
| 2026-06-16 | 2026-09-15 | | v11.7 [Download](https://releases.mattermost.com/11.7.2/mattermost-11.7.2-linux-amd64.tar.gz) \| {ref}`Changelog ` \|
SBOM
| 2026-05-15 | 2027-05-15 {ref}`EXTENDED ` | | v11.6 [Download](https://releases.mattermost.com/11.6.4/mattermost-11.6.4-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 | diff --git a/source/product-overview/release-policy.md b/source/product-overview/release-policy.md index 7efc649321b..58a54b18ac7 100644 --- a/source/product-overview/release-policy.md +++ b/source/product-overview/release-policy.md @@ -56,10 +56,11 @@ gantt v11.2 :done, 2025-12-16, 2026-03-15 v11.3 :done, 2026-01-16, 2026-04-15 v11.4 :done, 2026-02-16, 2026-05-15 - v11.5 :active, 2026-03-16, 2026-06-15 + v11.5 :done, 2026-03-16, 2026-06-15 v11.6 :active, 2026-04-16, 2026-07-15 v11.7 & Desktop App v6.2 Extended Support :crit, 2026-05-15, 2027-05-15 v11.8 :active, 2026-06-16, 2026-09-15 + v11.9 :active, 2026-07-16, 2026-10-15 ``` **Timeline Legend:** diff --git a/source/product-overview/ui-ada-changelog.rst b/source/product-overview/ui-ada-changelog.rst index 17b903bfd59..3cadfd632f5 100644 --- a/source/product-overview/ui-ada-changelog.rst +++ b/source/product-overview/ui-ada-changelog.rst @@ -12,6 +12,46 @@ Changelog * - Version - Change Description + * - v11.8 + - (UI) Added a new keyboard shortcut, ``Shift`` + ``ESC``, that marks all channels, threads, and direct messages as read for a team on webapp / desktop app. + * - v11.8 + - (UI) Added an overflow menu for channel bookmarks when the bookmark bar runs out of space. Bookmarks can be reordered via drag-and-drop between the bar and the overflow menu, or via keyboard (Space to select, arrow keys to move) on webapp. Replaced ``react-beautiful-dnd`` with ``@atlaskit/pragmatic-drag-and-drop``. + * - v11.8 + - (UI) Added an unread badge to Recaps. + * - v11.8 + - (UI) Added managed channel categories for **Channel Admins** to enforce sidebar organization across teams. + * - v11.8 + - (UI) Added per-channel classification assignment and banner integration for webapp/desktop app. + * - v11.8 + - (UI) Added support for **CPA Display Name** for user-facing labels of user attributes. + * - v11.8 + - (UI) Changed the **Invite People** modal to allow pasting any text, not only valid email formats. + * - v11.8 + - (UI) Standardized many buttons throughout the app, which may result in minor UX changes. + * - v11.8 + - (UI) Updated the **Enable Testing Commands** user interface to explicitly warn that ``EnableTesting`` must never be used in production. + * - v11.8 + - (UI) Changed the mobile view search box to only autofocus when the search button is pressed (reported on mobile browser). + * - v11.8 + - (UI) Improved the **Default "Report a Problem"** `behavior `__ to open a support ticket via email with metadata for licensed servers, and redirect to the Mattermost forums for free edition in webapp / desktop apps. + * - v11.8 + - (UI) Added support for system-scoped properties — property fields and values that attach to the Mattermost instance itself. + * - v11.8 + - (UI) Added the ability to define a property attribute once and reuse it across different object types (e.g., users, channels). + * - v11.8 + - (UI) Exposed the ``DefaultCategoryName`` to the user interface so admins can add, edit, and remove it easily. + * - v11.8 + - (UI) Moved interactive dialog date/datetime properties into ``datetime_config``. + * - v11.8 + - (UI) When a channel is shared or unshared with a remote, a system message will now be shown. + * - v11.8 + - (UI) On new installations using Elasticsearch or OpenSearch, search now includes public channels the user is not a member of by default. + * - v11.8 + - (UI) Added support for incoming webhooks to define a ``root_id`` to create posts in a thread. + * - v11.8 + - (UI) Updated membership policy user interface copy in the System Console and public channel settings to clarify qualifying-user requirements and auto-add behavior. + * - v11.8 + - (UI) Hid redundant "Download Apps" links and onboarding download reminders when Mattermost runs inside the Desktop app. * - v11.7 - (UI) Message attachment footers now support full Markdown rendering, including bold, italic, links, and emoji. * - v11.7