diff --git a/source/about/certifications-and-compliance.rst b/source/about/certifications-and-compliance.rst index 55d78b4d64a..666138ad47b 100644 --- a/source/about/certifications-and-compliance.rst +++ b/source/about/certifications-and-compliance.rst @@ -55,7 +55,7 @@ Data management ^^^^^^^^^^^^^^^^ - **Data Retention:** Use `data retention `__ to automatically erase data after a set period of time, a feature that meets the Right to Erasure principle. In Team Edition, you can use database scripts to achieve the same result. -- **Profile Deletion:** Delete a user’s personal information via `mmctl user delete `__, or via `the CLI `__. Both the mmctl and the CLI command permanently deletes all user information including messages created by the user. +- **Profile Deletion:** Delete a user’s personal information via `mmctl user delete `__. This permanently deletes all user information including messages created by the user. - **Self-Hosted Push Notification Service:** Self-host your own push notification service, or deploy mobile apps with any EMM provider that supports `AppConfig `__ to meet security and compliance policies. See `our Mobile App deployment documentation `__ to learn more. Data portability diff --git a/source/about/corporate-directory-integration.rst b/source/about/corporate-directory-integration.rst index 5167465aace..ab5ba9e2a11 100644 --- a/source/about/corporate-directory-integration.rst +++ b/source/about/corporate-directory-integration.rst @@ -39,7 +39,7 @@ Active Directory/LDAP authentication .. note:: - New user accounts are created when new users log in with their AD/LDAP credentials. You can optionally pre-create user accounts using the `bulk loading `__ tool. - - If you're using email or username and password authentication `users can switch to AD/LDAP manually `__, and the `conversion to AD/LDAP can also be done using the command line interface `__ by an IT admin. + - If you're using email or username and password authentication `users can switch to AD/LDAP manually `__, and the `conversion to AD/LDAP can also be done using the `mmctl user migrate auth `__ command by an IT admin. For very large AD/LDAP instances you can also configure max page size to divide a Mattermost AD/LDAP query into several pieces to not overtax the authentication server when synchronizing. diff --git a/source/about/security.rst b/source/about/security.rst index 881b3b8e50b..4c25baab10a 100644 --- a/source/about/security.rst +++ b/source/about/security.rst @@ -65,7 +65,7 @@ Authentication safeguards - Session length, session cache, and idle timeout can be `configured according to your internal policies `__, automatically forcing a user to re-login after a specified period of time. - Remotely `revoke user sessions `__ across web, mobile devices, and native desktop apps. User sessions can also be revoked remotely by a System Admin in **System Console > Users**. - Session fixation, where an attacker can trick the user to authenticate with a known session cookie, does not affect Mattermost users as a new session cookie is set at each login. -- Remotely reset user passwords via the System Console or via the `command line `__. +- Remotely reset user passwords via the System Console or via the `mmctl user reset-password `__ command. - Mattermost supports integrated authentication with `Active Directory and LDAP `__ (Mattermost Enterprise and Mattermost Professional) as well as `SAML 2.0 SSO integration `__ with providers including `Active Directory Federation Services `__, `Okta `__, among others (Mattermost Enterprise and Mattermost Professional). - The ability to require `multi-factor authentication `__ is also available (Mattermost Enterprise and Mattermost Professional). diff --git a/source/channels/archive-unarchive-channels.rst b/source/channels/archive-unarchive-channels.rst index d9366706841..162028533d6 100644 --- a/source/channels/archive-unarchive-channels.rst +++ b/source/channels/archive-unarchive-channels.rst @@ -58,4 +58,4 @@ System admins and Team admins can unarchive public channels or private channels .. tip:: - Alternatively, system admins can unarchive channels `via the CLI `__, or via the `mmctl `__. Team admins can unarchive channels `via the API `__. + Alternatively, system admins can unarchive channels `via the mmctl `__. Team admins can unarchive channels `via the API `__. diff --git a/source/channels/share-links.rst b/source/channels/share-links.rst index ae081e2ef10..c06180cdc0f 100644 --- a/source/channels/share-links.rst +++ b/source/channels/share-links.rst @@ -14,7 +14,8 @@ You can share links to Mattermost messages with other Mattermost users. Sharing .. note:: - Message previews respect channel membership permissions, so they’re only visible to users who have access to the original message. If the link is to a message in a public channel, any member of the team can see the message preview. If the link is to a message in a private channel or direct message, only members in that channel can see the message preview. + - Message previews respect channel membership permissions, so they’re only visible to users who have access to the original message. If the link is to a message in a public channel, any member of the team can see the message preview. If the link is to a message in a private channel or direct message, only members in that channel can see the message preview. + - If you're unable to share links, contact your Mattermost system admin for assistance. An `SSL certificate (or a self-signed certificate) `__ may be required for this functioanlity to work. .. tabs:: diff --git a/source/conf.py b/source/conf.py index e1b41fbec56..ffd2d00e0cc 100644 --- a/source/conf.py +++ b/source/conf.py @@ -111,27 +111,27 @@ def setup(_: Sphinx): "administration/command-line-tools.html": "https://docs.mattermost.com/manage/command-line-tools.html", "administration/command-line-tools.html#mattermost-user-delete": - "https://docs.mattermost.com/manage/command-line-tools.html#mattermost-user-delete", + "https://docs.mattermost.com/manage/mmctl-command-line-tool.html#mmctl-user-delete", "administration/command-line-tools.html#mattermost-channel-restore": - "https://docs.mattermost.com/manage/command-line-tools.html#mattermost-channel-restore", + "https://docs.mattermost.com/manage/mmctl-command-line-tool.html#mmctl-channel-restore", "administration/command-line-tools.html#mattermost-permissions-reset": - "https://docs.mattermost.com/manage/command-line-tools.html#mattermost-permissions-reset", + "https://docs.mattermost.com/manage/mmctl-command-line-tool.html#mmctl-permissions-reset", "administration/command-line-tools.html#mattermost-permissions-export": - "https://docs.mattermost.com/manage/command-line-tools.html#mattermost-permissions-export", + "https://api.mattermost.com/#tag/roles/operation/GetAllRoles", "administration/command-line-tools.html#mattermost-permissions-import": "https://docs.mattermost.com/manage/command-line-tools.html#mattermost-permissions-import", "administration/command-line-tools.html#mattermost-group-team-list": - "https://docs.mattermost.com/manage/command-line-tools.html#mattermost-group-team-list", + "https://docs.mattermost.com/manage/mmctl-command-line-tool.html#mmctl-group-team-list", "administration/command-line-tools.html#mattermost-group-team-enable": - "https://docs.mattermost.com/manage/command-line-tools.html#mattermost-group-team-enable", + "https://docs.mattermost.com/manage/mmctl-command-line-tool.html#mmctl-group-team-enable", "administration/command-line-tools.html#mattermost-group-channel-enable": - "https://docs.mattermost.com/manage/command-line-tools.html#mattermost-group-channel-enable", + "https://docs.mattermost.com/manage/mmctl-command-line-tool.html#mmctl-group-channel-enable", "administration/command-line-tools.html#mattermost-group-team-disable": - "https://docs.mattermost.com/manage/command-line-tools.html#mattermost-group-team-disable", + "https://docs.mattermost.com/manage/mmctl-command-line-tool.html#mmctl-group-team-disable", "administration/command-line-tools.html#mattermost-group-channel-disable": - "https://docs.mattermost.com/manage/command-line-tools.html#mattermost-group-channel-disable", + "https://docs.mattermost.com/manage/mmctl-command-line-tool.html#mmctl-group-channel-disable", "administration/command-line-tools.html#mattermost-ldap-idmigrate": - "https://docs.mattermost.com/manage/command-line-tools.html#mattermost-ldap-idmigrate", + "https://docs.mattermost.com/manage/mmctl-command-line-tool.html#mmctl-ldap-idmigrate", "administration/compliance.html": "https://docs.mattermost.com/comply/compliance-monitoring.html", "administration/compliance-export.html": @@ -189,11 +189,9 @@ def setup(_: Sphinx): "administration/mmctl-cli-tool.html": "https://docs.mattermost.com/manage/mmctl-cli-tool.html", "administration/mmctl-cli-tool.html#mmctl-channel-modify": - "https://docs.mattermost.com/manage/command-line-tools.html#mattermost-channel-modify", + "https://docs.mattermost.com/manage/mmctl-command-line-tool.html#mmctl-channel-modify", "administration/mmctl-cli-tool.html#mmctl-user-reset-password": "https://docs.mattermost.com/manage/mmctl-command-line-tool.html#mmctl-user-reset-password", -"administration/mmctl-cli-tool.html": - "https://docs.mattermost.com/manage/mmctl-command-line-tool.html", "administration/mobile-changelog.html": "https://docs.mattermost.com/deploy/mobile-app-changelog.html", "administration/notices.html": @@ -1795,6 +1793,186 @@ def setup(_: Sphinx): # Manage redirects "manage/scripts.html": "https://forum.mattermost.com/t/scripts-for-performing-discreet-tasks/13527", +"manage/command-line-tools.html#mattermost-channel": + "https://docs.mattermost.com/manage/mmctl-command-line-tool.html#mmctl-channel", +"manage/command-line-tools.html#mattermost-channel-add": + "https://docs.mattermost.com/manage/mmctl-command-line-tool.html#mmctl-channel-users-add", +"manage/command-line-tools.html#mattermost-channel-archive": + "https://docs.mattermost.com/manage/mmctl-command-line-tool.html#mmctl-channel-archive", +"manage/command-line-tools.html#mattermost-channel-create": + "https://docs.mattermost.com/manage/mmctl-command-line-tool.html#mmctl-channel-create", +"manage/command-line-tools.html#mattermost-channel-delete": + "https://docs.mattermost.com/manage/mmctl-command-line-tool.html#mmctl-channel-delete", +"manage/command-line-tools.html#mattermost-channel-list": + "https://docs.mattermost.com/manage/mmctl-command-line-tool.html#mmctl-channel-list", +"manage/command-line-tools.html#mattermost-channel-modify": + "https://docs.mattermost.com/manage/mmctl-command-line-tool.html#mmctl-channel-modify", +"manage/command-line-tools.html#mattermost-channel-move": + "https://docs.mattermost.com/manage/mmctl-command-line-tool.html#mmctl-channel-move", +"manage/command-line-tools.html#mattermost-channel-remove": + "https://docs.mattermost.com/manage/mmctl-command-line-tool.html#mmctl-channel-users-remove", +"manage/command-line-tools.html#mattermost-channel-rename": + "https://docs.mattermost.com/manage/mmctl-command-line-tool.html#mmctl-channel-rename", +"manage/command-line-tools.html#mattermost-channel-restore": + "https://docs.mattermost.com/manage/mmctl-command-line-tool.html#mmctl-channel-restore", +"manage/command-line-tools.html#mattermost-channel-search": + "https://docs.mattermost.com/manage/mmctl-command-line-tool.html#mmctl-channel-search", +"manage/command-line-tools.html#mattermost-command": + "https://docs.mattermost.com/manage/mmctl-command-line-tool.html#mmctl-command", +"manage/command-line-tools.html#mattermost-command-create": + "https://docs.mattermost.com/manage/mmctl-command-line-tool.html#mmctl-command-create", +"manage/command-line-tools.html#mattermost-command-delete": + "https://docs.mattermost.com/manage/mmctl-command-line-tool.html#mmctl-command-delete", +"manage/command-line-tools.html#mattermost-command-list": + "https://docs.mattermost.com/manage/mmctl-command-line-tool.html#mmctl-command-list", +"manage/command-line-tools.html#mattermost-command-modify": + "https://docs.mattermost.com/manage/mmctl-command-line-tool.html#mmctl-command-modify", +"manage/command-line-tools.html#mattermost-command-move": + "https://docs.mattermost.com/manage/mmctl-command-line-tool.html#mmctl-command-move", +"manage/command-line-tools.html#mattermost-command-show": + "https://docs.mattermost.com/manage/mmctl-command-line-tool.html#mmctl-command-show", +"manage/command-line-tools.html#mattermost-config": + "https://docs.mattermost.com/manage/mmctl-command-line-tool.html#mmctl-config", +"manage/command-line-tools.html#mattermost-config-get": + "https://docs.mattermost.com/manage/mmctl-command-line-tool.html#mmctl-config-get", +"manage/command-line-tools.html#mattermost-config-migrate": + "https://docs.mattermost.com/manage/mmctl-command-line-tool.html#mmctl-config-migrate", +"manage/command-line-tools.html#mattermost-config-reset": + "https://docs.mattermost.com/manage/mmctl-command-line-tool.html#mmctl-config-reset", +"manage/command-line-tools.html#mattermost-config-set": + "https://docs.mattermost.com/manage/mmctl-command-line-tool.html#mmctl-config-set", +"manage/command-line-tools.html#mattermost-config-show": + "https://docs.mattermost.com/manage/mmctl-command-line-tool.html#mmctl-config-show", +"manage/command-line-tools.html#mattermost-export-bulk": + "https://docs.mattermost.com/manage/mmctl-command-line-tool.html#mmctl-export", +"manage/command-line-tools.html#mattermost-group": + "https://docs.mattermost.com/manage/mmctl-command-line-tool.html#mmctl-group", +"manage/command-line-tools.html#mattermost-group-team-list": + "https://docs.mattermost.com/manage/mmctl-command-line-tool.html#mmctl-group-team-list", +"manage/command-line-tools.html#mattermost-group-team-enable": + "https://docs.mattermost.com/manage/mmctl-command-line-tool.html#mmctl-group-team-enable", +"manage/command-line-tools.html#mattermost-group-channel": + "https://docs.mattermost.com/manage/mmctl-command-line-tool.html#mmctl-group-channel", +"manage/command-line-tools.html#mattermost-group-channel-enable": + "https://docs.mattermost.com/manage/mmctl-command-line-tool.html#mmctl-group-channel-enable", +"manage/command-line-tools.html#mattermost-group-team": + "https://docs.mattermost.com/manage/mmctl-command-line-tool.html#mmctl-group-team", +"manage/command-line-tools.html#mattermost-group-team-disable": + "https://docs.mattermost.com/manage/mmctl-command-line-tool.html#mmctl-group-team-disable", +"manage/command-line-tools.html#mattermost-group-channel-disable": + "https://docs.mattermost.com/manage/mmctl-command-line-tool.html#mmctl-group-channel-disable", +"manage/command-line-tools.html#mattermost-group-channel-status": + "https://docs.mattermost.com/manage/mmctl-command-line-tool.html#mmctl-group-channel-status", +"manage/command-line-tools.html#mattermost-integrity": + "https://docs.mattermost.com/manage/mmctl-command-line-tool.html#mmctl-integrity", +"manage/command-line-tools.html#mattermost-ldap": + "https://docs.mattermost.com/manage/mmctl-command-line-tool.html#mmctl-ldap", +"manage/command-line-tools.html#mattermost-ldap-idmigrate": + "https://docs.mattermost.com/manage/mmctl-command-line-tool.html#mmctl-ldap-idmigrate", +"manage/command-line-tools.html#mattermost-ldap-sync": + "https://docs.mattermost.com/manage/mmctl-command-line-tool.html#mmctl-ldap-sync", +"manage/command-line-tools.html#mattermost-license": + "https://docs.mattermost.com/manage/mmctl-command-line-tool.html#mmctl-license", +"manage/command-line-tools.html#mattermost-license-upload": + "https://docs.mattermost.com/manage/mmctl-command-line-tool.html#mmctl-license-upload", +"manage/command-line-tools.html#mattermost-logs": + "https://docs.mattermost.com/manage/mmctl-command-line-tool.html#mmctl-logs", +"manage/command-line-tools.html#mattermost-permissions": + "https://docs.mattermost.com/manage/mmctl-command-line-tool.html#mmctl-permissions", +"manage/command-line-tools.html#mattermost-permissions-reset": + "https://docs.mattermost.com/manage/mmctl-command-line-tool.html#mmctl-permissions-reset", +"manage/command-line-tools.html#mattermost-plugin": + "https://docs.mattermost.com/manage/mmctl-command-line-tool.html#mmctl-plugin", +"manage/command-line-tools.html#mattermost-plugin-add": + "https://docs.mattermost.com/manage/mmctl-command-line-tool.html#mmctl-plugin-add", +"manage/command-line-tools.html#mattermost-plugin-delete": + "https://docs.mattermost.com/manage/mmctl-command-line-tool.html#mmctl-plugin-delete", +"manage/command-line-tools.html#mattermost-plugin-disable": + "https://docs.mattermost.com/manage/mmctl-command-line-tool.html#mmctl-plugin-disable", +"manage/command-line-tools.html#mattermost-plugin-enable": + "https://docs.mattermost.com/manage/mmctl-command-line-tool.html#mmctl-plugin-enable", +"manage/command-line-tools.html#mattermost-plugin-list": + "https://docs.mattermost.com/manage/mmctl-command-line-tool.html#mmctl-plugin-list", +"manage/command-line-tools.html#mattermost-roles": + "https://docs.mattermost.com/manage/mmctl-command-line-tool.html#mmctl-roles", +"manage/command-line-tools.html#mattermost-roles-member": + "https://docs.mattermost.com/manage/mmctl-command-line-tool.html#mmctl-roles", +"manage/command-line-tools.html#mattermost-roles-system-admin": + "https://docs.mattermost.com/manage/mmctl-command-line-tool.html#mmctl-roles", +"manage/command-line-tools.html#mattermost-sampledata": + "https://docs.mattermost.com/manage/mmctl-command-line-tool.html#mmctl-sampledata", +"manage/command-line-tools.html#mattermost-team": + "https://docs.mattermost.com/manage/mmctl-command-line-tool.html#mmctl-team", +"manage/command-line-tools.html#mattermost-team-add": + "https://docs.mattermost.com/manage/mmctl-command-line-tool.html#mmctl-team-users", +"manage/command-line-tools.html#mattermost-team-archive": + "https://docs.mattermost.com/manage/mmctl-command-line-tool.html#mmctl-team-archive", +"manage/command-line-tools.html#mattermost-team-create": + "https://docs.mattermost.com/manage/mmctl-command-line-tool.html#mmctl-team-create", +"manage/command-line-tools.html#mattermost-team-delete": + "https://docs.mattermost.com/manage/mmctl-command-line-tool.html#mmctl-team-delete", +"manage/command-line-tools.html#mattermost-team": + "https://docs.mattermost.com/manage/mmctl-command-line-tool.html#mmctl-team", +"manage/command-line-tools.html#mattermost-team-list": + "https://docs.mattermost.com/manage/mmctl-command-line-tool.html#mmctl-team-list", +"manage/command-line-tools.html#mattermost-team-modify": + "https://docs.mattermost.com/manage/mmctl-command-line-tool.html#mmctl-team-modify", +"manage/command-line-tools.html#mattermost-team-remove": + "https://docs.mattermost.com/manage/mmctl-command-line-tool.html#mmctl-team-users", +"manage/command-line-tools.html#mattermost-team-rename": + "https://docs.mattermost.com/manage/mmctl-command-line-tool.html#mmctl-team-rename", +"manage/command-line-tools.html#mattermost-team-restore": + "https://docs.mattermost.com/manage/mmctl-command-line-tool.html#mmctl-team-restore", +"manage/command-line-tools.html#mattermost-team-search": + "https://docs.mattermost.com/manage/mmctl-command-line-tool.html#mmctl-team-search", +"manage/command-line-tools.html#mattermost-user": + "https://docs.mattermost.com/manage/mmctl-command-line-tool.html#mmctl-user", +"manage/command-line-tools.html#mattermost-user-activate": + "https://docs.mattermost.com/manage/mmctl-command-line-tool.html#mmctl-user-activate", +"manage/command-line-tools.html#mattermost-user-convert": + "https://docs.mattermost.com/manage/mmctl-command-line-tool.html#mmctl-user-convert", +"manage/command-line-tools.html#mattermost-user-create": + "https://docs.mattermost.com/manage/mmctl-command-line-tool.html#mmctl-user-create", +"manage/command-line-tools.html#mattermost-user-deactivate": + "https://docs.mattermost.com/manage/mmctl-command-line-tool.html#mmctl-user-deactivate", +"manage/command-line-tools.html#mattermost-user-delete": + "https://docs.mattermost.com/manage/mmctl-command-line-tool.html#mmctl-user-delete", +"manage/command-line-tools.html#mattermost-user-deleteall": + "https://docs.mattermost.com/manage/mmctl-command-line-tool.html#mmctl-user-deleteall", +"manage/command-line-tools.html#mattermost-user-email": + "https://docs.mattermost.com/manage/mmctl-command-line-tool.html#mmctl-user-email", +"manage/command-line-tools.html#mattermost-user-invite": + "https://docs.mattermost.com/manage/mmctl-command-line-tool.html#mmctl-user-invite", +"manage/command-line-tools.html#mattermost-user-migrate-auth": + "https://docs.mattermost.com/manage/mmctl-command-line-tool.html#mmctl-user-migrate-auth", +"manage/command-line-tools.html#mattermost-user-password": + "https://docs.mattermost.com/manage/mmctl-command-line-tool.html#mmctl-user-reset-password", +"manage/command-line-tools.html#mattermost-user-resetmfa": + "https://docs.mattermost.com/manage/mmctl-command-line-tool.html#mmctl-user-reset-mfa", +"manage/command-line-tools.html#mattermost-user-search": + "https://docs.mattermost.com/manage/mmctl-command-line-tool.html#mmctl-user-search", +"manage/command-line-tools.html#mattermost-user-verify": + "https://docs.mattermost.com/manage/mmctl-command-line-tool.html#mmctl-user-verify", +"manage/command-line-tools.html#mattermost-version": + "https://docs.mattermost.com/manage/mmctl-command-line-tool.html#mmctl-version", +"manage/command-line-tools.html#mattermost-webhook": + "https://docs.mattermost.com/manage/mmctl-command-line-tool.html#mmctl-webhook", +"manage/command-line-tools.html#mattermost-webhook-create-incoming": + "https://docs.mattermost.com/manage/mmctl-command-line-tool.html#mmctl-webhook-create-incoming", +"manage/command-line-tools.html#mattermost-webhook-create-outgoing": + "https://docs.mattermost.com/manage/mmctl-command-line-tool.html#mmctl-webhook-create-outgoing", +"manage/command-line-tools.html#mattermost-webhook-delete": + "https://docs.mattermost.com/manage/mmctl-command-line-tool.html#mmctl-webhook-delete", +"manage/command-line-tools.html#mattermost-webhook-list": + "https://docs.mattermost.com/manage/mmctl-command-line-tool.html#mmctl-webhook-list", +"manage/command-line-tools.html#mattermost-webhook-modify-incoming": + "https://docs.mattermost.com/manage/mmctl-command-line-tool.html#mmctl-webhook-modify-incoming", +"manage/command-line-tools.html#mattermost-webhook-modify-outgoing": + "https://docs.mattermost.com/manage/mmctl-command-line-tool.html#mmctl-webhook-modify-outgoing", +"manage/command-line-tools.html#mattermost-webhook-move-outgoing": + "https://docs.mattermost.com/manage/mmctl-command-line-tool.html#mmctl-webhook-modify-outgoing", +"manage/command-line-tools.html#mattermost-webhook-show": + "https://docs.mattermost.com/manage/mmctl-command-line-tool.html#mmctl-webhook-show", # Messaging redirects "messaging/about-teams-channels-messages.html#teams": @@ -2394,9 +2572,9 @@ def setup(_: Sphinx): # built documents. # # The short X.Y version. -# version = '8.0' +# version = '8.1' # The full version, including alpha/beta/rc tags. -# release = '8.0' +# release = '8.1' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. diff --git a/source/configure/authentication-configuration-settings.rst b/source/configure/authentication-configuration-settings.rst index dba817194f3..3882f5eaa60 100644 --- a/source/configure/authentication-configuration-settings.rst +++ b/source/configure/authentication-configuration-settings.rst @@ -297,6 +297,28 @@ Maximum login attempts | Numerical input. Default is **10**. | - Environment variable: ``MM_SERVICESETTINGS_MAXIMUMLOGINATTEMPTS`` | +-------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------+ +.. config:setting:: password-forgotpasswordlink + :displayname: Enable forgot password link (Password) + :systemconsole: Authentication > Password + :configjson: .ServiceSettings.ForgotPasswordLink + :environment: MM_SERVICESETTINGS_FORGOTPASSWORDLINK + :description: Show or hide the Forgot Password link on the Mattermost login page. + + - **true**: **(Default)** Displays the Forgot Password link on the Mattermost login page. + - **false**: Hides the Forgot Password link from the Mattermost login page. + +Enable forgot password link +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + ++---------------------------------------------------------------------------------+------------------------------------------------------------------------+ +| - **true**: **(Default)** Displays the **Forget Password** link on the | - System Config path: **Authentication > Enable forgot password link** | +| Mattermost login page. | - ``config.json`` setting: ``.LdapSettings.ForgotPasswordLink: true`` | +| - **false**: Hides the **Forgot Password** link from the Mattermost login page. | - Environment variable: ``MM_LDAPSETTINGS_FORGOTPASSWORDLINK`` | ++---------------------------------------------------------------------------------+------------------------------------------------------------------------+ +| **Note**: You can customize the **Forgot Password** link URL by going to **Site Configuration > Customization > Forgot Password Custom Link**. | +| See the `configuration `__ documentation for details. | ++---------------------------------------------------------------------------------+------------------------------------------------------------------------+ + ---- MFA @@ -749,8 +771,8 @@ ID attribute | | | | String input. | | +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------+ -| **Note**: If a user's ID Attribute changes, a new Mattermost account is created that is not associated with the previous account. If you need to change this field after users have signed-in, use the `mattermost ldap idmigrate `__ CLI tool. | -+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| **Note**: If a user's ID Attribute changes, a new Mattermost account is created that is not associated with the previous account. If you need to change this field after users have signed-in, use the `mmctl ldap idmigrate `__ command. | ++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------+ .. config:setting:: ldap-loginidattribute :displayname: Login ID attribute (AD/LDAP) @@ -2712,3 +2734,22 @@ Enforce multi-factor authentication | **Note**: This setting defaults to false and cannot be changed if MFA isn't enforced for non-guest users. | +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +.. config:setting:: guest-showtag + :displayname: Show guest tag (Guest Access) + :systemconsole: Authentication > Guest Access + :configjson: .GuestAccountsSettings.HideTags + :environment: MM_GUESTACCOUNTSSETTINGS_HIDETAGS + + - **True**: **(Default)** Guest tags are visible in Mattermost. + - **False**: **(Default)** Guest tags aren't visible in Mattermost. + +Show guest tag +~~~~~~~~~~~~~~ + ++-----------------------------------------------------------------+----------------------------------------------------------------------+ +| - **true**: **(Default)** Guest tags are visible in Mattermost. | - System Config path: **Authentication > Guest Access** | +| - **false**: Guest tags aren't visible in Mattermost. | - ``config.json`` setting: ``.GuestAccountsSettings.HideTags: true`` | +| | - Environment variable: ``MM_GUESTACCOUNTSSETTINGS_HIDETAGS`` | ++-----------------------------------------------------------------+----------------------------------------------------------------------+ +| **Note**: See the `guest accounts `__ documentation for details. | ++----------------------------------------------------------------------------------------------------------------------------------------+ \ No newline at end of file diff --git a/source/configure/configuation-in-a-database.rst b/source/configure/configuation-in-a-database.rst index f0425711a8a..0b021a8933f 100644 --- a/source/configure/configuation-in-a-database.rst +++ b/source/configure/configuation-in-a-database.rst @@ -33,7 +33,7 @@ These instructions cover migrating the Mattermost configuration to the database Get your database connection string ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -The first step is to get your master database connection string. We recommend using the `mmctl config get command `__, or using the CLI's ``mattermost config get`` command to do this. +The first step is to get your master database connection string. We recommend using the `mmctl config get command `__ to do this. To use the ``mattermost config get`` command: diff --git a/source/configure/file-storage-configuration-settings.rst b/source/configure/file-storage-configuration-settings.rst index 7ef4c4d1cee..31b158d7a8b 100644 --- a/source/configure/file-storage-configuration-settings.rst +++ b/source/configure/file-storage-configuration-settings.rst @@ -112,9 +112,8 @@ Enable document search by content | for files by file name only. | | +---------------------------------------------------------------+-------------------------------------------------------------------------------------+ | **Note**: Document content search results for files shared before upgrading to Mattermost Server v5.35 may be incomplete until an | -| extraction command is executed using the `CLI `__ | -| or the `mmctl `__. If this command is not run, | -| users can search older files based on file name only. | +| extraction command is executed using the `mmctl `__. | +| If this command is not run, users can search older files based on file name only. | | | | You can optionally install the following `dependencies `__ to extend content searching support in | | Mattermost to include file formats beyond PDF, DOCX, and ODT, such as DOC, RTF, XML, HTML, and PAGES: | @@ -388,7 +387,7 @@ Enable Amazon S3 debugging :environment: MM_FILESETTINGS_INITIALFONT :description: The font used in auto-generated profile pictures with colored backgrounds and username initials. Default value is **nunito-bold.ttf**. -Initial Font +Initial font ~~~~~~~~~~~~ *Available in legacy Enterprise Edition E10/E20* @@ -400,3 +399,20 @@ Initial Font | A string with the font file name. Default is | | | **nunito-bold.ttf**. | | +---------------------------------------------------------------+--------------------------------------------------------------------------------+ + +.. config:setting:: file-amazons3requesttimeoutmilliseconds + :displayname: Amazon S3 request timeout (File Storage) + :systemconsole: N/A + :configjson: .FileSettings.AmazonS3RequestTimeoutMilliseconds + :environment: MM_FILESETTINGS_AMAZONS3REQUESTTIMEOUTMILLISECONDS + :description: Amount of time, in milliseconds, before requests to Amazon S3 time out. Default value is 30000 (30 seconds). + +Amazon S3 request timeout +~~~~~~~~~~~~~~~~~~~~~~~~~ + ++---------------------------------------------------------------+-----------------------------------------------------------------------------------------+ +| The amount of time, in milliseconds, before requests to | - System Config path: N/A | +| Amazon S3 storage time out. | - ``config.json`` setting: ``".FileSettings.AmazonS3RequestTimeoutMilliseconds: 30000`` | +| | - Environment variable: ``MM_FILESETTINGS_AMAZONS3REQUESTTIMEOUTMILLISECONDS`` | +| Default is 30000 (30 seconds). | | ++---------------------------------------------------------------+-----------------------------------------------------------------------------------------+ \ No newline at end of file diff --git a/source/configure/plugins-configuration-settings.rst b/source/configure/plugins-configuration-settings.rst index 6d53ec1cd81..00006ef449d 100644 --- a/source/configure/plugins-configuration-settings.rst +++ b/source/configure/plugins-configuration-settings.rst @@ -196,6 +196,10 @@ Agenda .. include:: ../_static/badges/selfhosted-only.rst :start-after: :nosearch: +.. note:: + + From Mattermost v8.1, this third-party plugin is managed by the Mattermost Community. + Access the following configuration settings in the System Console by going to **Plugins > Agenda**. .. config:setting:: plugins-agendaenable @@ -223,6 +227,10 @@ Antivirus .. include:: ../_static/badges/selfhosted-only.rst :start-after: :nosearch: +.. note:: + + From Mattermost v8.1, this third-party plugin is managed by the Mattermost Community. + This plugin allows the forwarding of uploaded files to an antivirus scanning application, `ClamAV anti-virus software `__, and prevents the upload from completing if there is a virus detected in the file. Use this plugin to prevent users from inadvertently spreading malware or viruses via your Mattermost server. See the `Mattermost Antivirus Plugin `__ documentation for details. @@ -285,6 +293,10 @@ Apps .. include:: ../_static/badges/allplans-cloud-selfhosted.rst :start-after: :nosearch: +.. note:: + + From Mattermost v8.1, this third-party plugin is managed by the Mattermost Community. + Access the following configuration settings in the System Console by going to **Plugins > Apps**. To create your own Mattermost App, see the `Mattermost Apps `__ developer documentation. @@ -315,6 +327,10 @@ Autolink .. include:: ../_static/badges/allplans-selfhosted.rst :start-after: :nosearch: +.. note:: + + From Mattermost v8.1, this third-party plugin is managed by the Mattermost Community. + This plugin creates regular expression patterns that are reformatted into a Markdown link before the message is saved into the database. This plugin can be configured through the System Console, ``config.json`` file, or ``/autolink`` slash command. See the `Autolink Plugin `__ documentation for details. Access the following configuration settings in the System Console by going to **Plugins > Autolink**. @@ -399,6 +415,10 @@ AWS SNS .. include:: ../_static/badges/allplans-selfhosted.rst :start-after: :nosearch: +.. note:: + + From Mattermost v8.1, this third-party plugin is managed by the Mattermost Community. + This plugin is used to receive alert notifications from `Amazon AWS CloudWatch `__ to Mattermost channels via `AWS Simple Notification Server (SNS) `__. Access the following configuration settings in the System Console by going to **Plugins > AWS SNS**. @@ -520,7 +540,7 @@ RTC server address (UDP) | Changing this setting requires a plugin restart to take effect. | - Environment variable: N/A | | If left unset (default value) the service will listen on all the available interfaces. | | +--------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------+ -| **Note**: This setting is only applicable when not running calls through the standalone ``rtcd`` service. | | +| **Note**: This setting is only applicable when not running calls through the standalone ``rtcd`` service. | +--------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------+ .. config:setting:: plugins-callsrtcserveraddress @@ -542,11 +562,11 @@ RTC server address (TCP) | Changing this setting requires a plugin restart to take effect. | - Environment variable: N/A | | If left unset (default value) the service will listen on all the available interfaces. | | +--------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------+ -| **Note**: | | -| | | -| - This setting is only applicable when not running calls through the standalone ``rtcd`` service. | | -| | | -| - This setting is available starting in plugin version 0.17. | | +| **Note**: | +| | +| - This setting is only applicable when not running calls through the standalone ``rtcd`` service. | +| | +| - This setting is available starting in plugin version 0.17. | +--------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------+ .. config:setting:: plugins-callsrtcserverportudp @@ -570,7 +590,7 @@ RTC server port (UDP) | | | | Default is **8443**. | | +-------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------+ -| **Note**: This setting is only applicable when not running calls through the standalone ``rtcd`` service. | | +| **Note**: This setting is only applicable when not running calls through the standalone ``rtcd`` service. | +-------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------+ .. config:setting:: plugins-callsrtcserverporttcp @@ -594,11 +614,11 @@ RTC server port (TCP) | | | | Default is **8443**. | | +-------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------+ -| **Note**: | | -| | | -| - This setting is only applicable when not running calls through the standalone ``rtcd`` service. | | -| | | -| - This setting is available starting in plugin version 0.17. | | +| **Note**: | +| | +| - This setting is only applicable when not running calls through the standalone ``rtcd`` service. | +| | +| - This setting is available starting in plugin version 0.17. | +-------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------+ @@ -881,11 +901,11 @@ Enable simulcast for screen sharing (Experimental) | - **false**: Disables simulcast for screen sharing. | - ``config.json`` setting: ``PluginSettings.Plugins.com.mattermost.calls.enablesimulcast`` | | | - Environment variable N/A | +------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------+ -| **Note**: This functionality has the following requirements: | | -| | | -| - Calls plugin version >= v0.16.0 | | -| | | -| - ``rtcd`` version >= v0.10.0 (if in use) | | +| **Note**: This functionality has the following requirements: | +| | +| - Calls plugin version >= v0.16.0 | +| | +| - ``rtcd`` version >= v0.10.0 (if in use) | +------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------+ .. config:setting:: plugins-enablecallrecordings @@ -993,11 +1013,9 @@ Call recording quality | | | | Changing this setting requires a plugin restart to take effect. | | +----------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------+ -| **Note**: | | -| | | -| - This setting is only applicable when not running calls through the standalone ``rtcd`` service. | | -| | | -| - This setting is available starting in plugin version 0.17. | | +| **Note**: | +| - This setting is only applicable when not running calls through the standalone ``rtcd`` service. | +| - This setting is available starting in plugin version 0.17. | +----------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------+ .. |note| replace:: . @@ -1027,6 +1045,10 @@ Channel export .. include:: ../_static/badges/allplans-cloud-selfhosted.rst :start-after: :nosearch: +.. note:: + + From Mattermost v8.1, this third-party plugin is managed by the Mattermost Community. + Access the following configuration settings in the System Console by going to **Plugins > Channel Export**. .. config:setting:: plugins-channelexportenable @@ -1038,13 +1060,12 @@ Access the following configuration settings in the System Console by going to ** - **true**: Enables the Channel Export plugin on your Mattermost workspace. - **false**: (Default) Disables the Channel Export plugin on your Mattermost workspace. -Enable Plugin +Enable plugin ~~~~~~~~~~~~~ +-----------------------------------------------------------------------------------------+----------------------------------------------------+ | - **true**: Enables the Channel Export plugin on your Mattermost workspace. | - System Config path: **Plugins > Channel Export** | | - **false**: (Default) Disables the Channel Export plugin on your Mattermost workspace. | | -| | | +-----------------------------------------------------------------------------------------+----------------------------------------------------+ ---- @@ -1086,7 +1107,6 @@ Channel name +----------------------------------------------------------------------------------+-------------------------------------------------+ | Specify the channel to use as part of the demo plugin, when enabled. | - System Config path: **Plugins > Demo Plugin** | -| | | | If the specified channel does not exist, the plugin creates the channel for you. | | +----------------------------------------------------------------------------------+-------------------------------------------------+ @@ -1102,7 +1122,6 @@ Username +----------------------------------------------------------------------------+-------------------------------------------------+ | Specify the user for the demo plugin, when enabled. | - System Config path: **Plugins > Demo Plugin** | -| | | | If the specified user does not exist, the plugin creates the user for you. | | +----------------------------------------------------------------------------+-------------------------------------------------+ @@ -1114,6 +1133,10 @@ GIF commands .. include:: ../_static/badges/allplans-selfhosted.rst :start-after: :nosearch: +.. note:: + + From Mattermost v8.1, this third-party plugin is managed by the Mattermost Community. + Access the following configuration settings in the System Console by going to **Plugins > GIF commands**. This plugin is used to post GIFs from Gfycat, Giphy, or Tenor using slash commands. @@ -1147,8 +1170,6 @@ Display the GIF as +---------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------+ | Display the GIF as an embedded image where the GIF can't be collapsed, or as a collapsible image preview where the full URL displays. | - System Config path: **Plugins > GIF commands** | -| | | -| | | +---------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------+ | **Note**: | | - `Link previews `__ must be enabled to display GIF previews. | @@ -1289,6 +1310,10 @@ Mattermost Boards .. include:: ../_static/badges/allplans-cloud-selfhosted.rst :start-after: :nosearch: +.. note:: + + From Mattermost v8.1, this third-party plugin is managed by the Mattermost Community. + Mattermost Boards is an open source alternative to Trello, Notion, and Asana. Boards is a project management tool that helps define, organize, track and manage work across teams, using a familiar kanban board view. See the `Mattermost Boards `__ product documentation for details. Access the following configuration settings in the System Console by going to **Plugins > Mattermost Boards**. @@ -1307,7 +1332,7 @@ Enable plugin +----------------------------------------------------------------------------------+-------------------------------------------------------+ | - **true**: Enables the Mattermost Boards plugin on your Mattermost workspace. | - System Config path: **Plugins > Mattermost Boards** | -| - **false**: Disables the Mattermost Boards plugin on your Mattermost workspace. | - ``config.json`` setting: | +| - **false**: Disables the Mattermost Boards plugin on your Mattermost workspace. | | | | - Environment variable: | +----------------------------------------------------------------------------------+-------------------------------------------------------+ @@ -2018,4 +2043,4 @@ Specify the `Chimera `__ URL used by Matt +-------------------------------------------------------------------------------------------------------------------------+ | This feature's ``config.json`` setting is ``"ChimeraOAuthProxyUrl": {}`` with string input. | -+-------------------------------------------------------------------------------------------------------------------------+ ++-------------------------------------------------------------------------------------------------------------------------+ \ No newline at end of file diff --git a/source/configure/site-configuration-settings.rst b/source/configure/site-configuration-settings.rst index bd0a74d135b..6ab76728703 100644 --- a/source/configure/site-configuration-settings.rst +++ b/source/configure/site-configuration-settings.rst @@ -220,6 +220,26 @@ About link | String input. Default is ``https://about.mattermost.com/default-about/``. | - Environment variable: ``MM_SUPPORTSETTINGS_ABOUTLINK`` | +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------+ +.. config:setting:: custom-forgotpasswordurl + :displayname: Forgot Password custom link (Customization) + :systemconsole: Site Configuration > Customization + :configjson: .SupportSettings.ForgetPasswordCustomLink + :environment: MM_SUPPORTSETTINGS_FORGETPASSWORDCUSTOMLINK + :description: Set a custom URL for the **Forgot Password** link on the Mattermost login page. Leave this field blank to use Mattermost's Password Reset workflow. + +Forgot Password custom link +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + ++-------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ +| When the **Forgot Password** link is enabled on the Mattermost login page, | - System Config path: **Site Configuration > Forgot password custom link** | +| users are taken to a custom URL to recover or change their password. | - ``config.json`` setting: ``.SupportSettings.ForgetPasswordCustomLink`` | +| | - Environment variable: ``MM_SUPPORTSETTINGS_FORGETPASSWORDCUSTOMLINK`` | +| Leave this field blank to use Mattermost's Password Reset workflow. | | ++-------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ +| **Note**: You can control whether the **Forgot Password** link is visible or hidden by going to **Authentication > Password > Enable Forgot Password Link**. | +| See the `configuration `__ documentation for details. | ++-------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ + .. config:setting:: custom-reportaproblemlink :displayname: Report a Problem link (Customization) :systemconsole: Site Configuration > Customization diff --git a/source/deploy/backup-disaster-recovery.rst b/source/deploy/backup-disaster-recovery.rst index eac6a3571c4..d8084402d7e 100644 --- a/source/deploy/backup-disaster-recovery.rst +++ b/source/deploy/backup-disaster-recovery.rst @@ -98,6 +98,4 @@ When users are unable to reach your organization's SSO provider during an outage Once IT is contacted about an SSO outage issue, they can temporarily change a user's account from SSO to email-password using the System Console, and the end user can use password to claim the account, until the SSO outage is over and the account can be converted back to SSO. -If the System Admin is unable to log into the System Console because of the SSO outage, they can switch their authentication method to email-password to gain access using the `command line tool `__. - When the outage is over, it's critical to switch everyone back to SSO from email-password to maintain consistency and security. diff --git a/source/deploy/bleve-search.rst b/source/deploy/bleve-search.rst index 5de986d388d..dcb85ca1270 100644 --- a/source/deploy/bleve-search.rst +++ b/source/deploy/bleve-search.rst @@ -29,7 +29,7 @@ Follow these steps to configure the Mattermost server to use Bleve and generate .. note:: - Search results for files shared before upgrading to Mattermost Server v5.35 may be incomplete until an extraction command is run using the `CLI `__, or using the `mmctl `__. After running this command, the search index must be rebuilt. Go to **System Console > Experimental > Bleve > Bulk Indexing**, then select **Index Now** to rebuild the search index to include older file contents. + Search results for files shared before upgrading to Mattermost Server v5.35 may be incomplete until an extraction command is run using the `mmctl `__. After running this command, the search index must be rebuilt. Go to **System Console > Experimental > Bleve > Bulk Indexing**, then select **Index Now** to rebuild the search index to include older file contents. Using Bleve search ------------------ diff --git a/source/getting-started/admin-onboarding-tasks.rst b/source/getting-started/admin-onboarding-tasks.rst index c71a0839af2..4c63929a2ec 100644 --- a/source/getting-started/admin-onboarding-tasks.rst +++ b/source/getting-started/admin-onboarding-tasks.rst @@ -39,14 +39,14 @@ Important administration notes **DO NOT manipulate the Mattermost database** - In particular, DO NOT manually delete data from the database directly. Mattermost is designed as a continuous archive and cannot be supported after manual manipulation. -- If you need to permanently delete a team or user, use the `mattermost user delete `__ CLI command, or use the `mmctl user delete `__ command. +- If you need to permanently delete a team or user, use the `mmctl user delete `__ command or the `mmctl user deletall `__ command. Common tasks ------------ **Creating System Admin account from the command line** -- If the System Admin leaves the organization or is otherwise unavailable, you can use the command line interface to assign the *system_admin* role to an existing user. In the ``/opt/mattermost`` directory, type ``sudo -u mattermost bin/mattermost roles system_admin {user-name}``, where *{user-name}* is the username of the person with the new role. For more information about using the command line interface, see `Command Line Tools `__. +- If the System Admin leaves the organization or is otherwise unavailable, you can use the `mmctl roles `__ commands to assign the *system_admin* role to an existing user. - The user needs to log out and log back in before the *system_admin* role is applied. **Migrating to AD/LDAP or SAML from email-based authentication** @@ -57,7 +57,7 @@ Common tasks **Deactivating a user** - System Admins can go to **System Console > Users** for a list of all users on the server. The list can be searched and filtered to make finding the user easier. Click the user's role and in the menu that opens, click **Deactivate**. -- To preserve audit history, users are typically never deleted from the system. If permanently deleting a user is necessary (e.g. for the purposes of `GDPR `__), an `mmctl command `__ or a `CLI command `_ can be used to do so. +- To preserve audit history, users are typically never deleted from the system. If permanently deleting a user is necessary (e.g. for the purposes of `GDPR `__), an `mmctl command `__ can be used to do so. - Note that AD/LDAP user accounts cannot be deactivated from Mattermost; they must be deactivated from your Active Directory. **Checking for a valid license in Enterprise Edition without logging in** diff --git a/source/guides/playbooks.rst b/source/guides/playbooks.rst index e4aa9b97471..59ac735ff18 100644 --- a/source/guides/playbooks.rst +++ b/source/guides/playbooks.rst @@ -4,11 +4,11 @@ Mattermost Playbooks .. include:: ../_static/badges/allplans-cloud-selfhosted.rst :start-after: :nosearch: - Mattermost Playbooks enables you to create and manage pre-built, configurable checklists that define a repeatable process for teams to achieve specific and predictable outcomes. With playbooks, development teams can orchestrate prescribed workflows and define, streamline, and document complex, recurring operations. Playbooks help you stay in command with integrated communication, collaboration, and status dashboards to manage your entire workflow lifecycle. - +Mattermost Playbooks enables you to create and manage pre-built, configurable checklists that define a repeatable process for teams to achieve specific and predictable outcomes. With playbooks, development teams can orchestrate prescribed workflows and define, streamline, and document complex, recurring operations. Playbooks help you stay in command with integrated communication, collaboration, and status dashboards to manage your entire workflow lifecycle. + .. image:: ../images/Playbooks_Hero.png :alt: An example of the Mattermost Playbooks screen that includes active run details in the right-hand pane. - + This Mattermost Playbooks documentation is for anyone who needs help using Mattermost workflow capabilities. .. toctree:: diff --git a/source/images/Guest_Badges.png b/source/images/Guest_Badges.png index 17d7da1450c..41e309006e7 100644 Binary files a/source/images/Guest_Badges.png and b/source/images/Guest_Badges.png differ diff --git a/source/images/swipe-left-to-remove.png b/source/images/swipe-left-to-remove.png new file mode 100644 index 00000000000..44a473b5a79 Binary files /dev/null and b/source/images/swipe-left-to-remove.png differ diff --git a/source/install/download-latest-tarball.rst b/source/install/download-latest-tarball.rst new file mode 100644 index 00000000000..b90d8b7bcc1 --- /dev/null +++ b/source/install/download-latest-tarball.rst @@ -0,0 +1,55 @@ +:orphan: +:nosearch: + +In a terminal window, ssh onto the system that will host the Mattermost Server. + +Using ``wget``, download the Mattermost Server release you want to install. + +.. tabs:: + + .. tab:: Latest release + + .. raw:: html + +
+ +
+ + wget https://releases.mattermost.com/8.0.1/mattermost-8.0.1-linux-amd64.tar.gz + + Copied to clipboard +
+ + + +
+ + .. tab:: Current ESR + + .. raw:: html + +
+ +
+ + wget https://releases.mattermost.com/7.8.9/mattermost-7.8.9-linux-amd64.tar.gz + + Copied to clipboard +
+ + + +
+ + .. tab:: Older releases + + If you are looking for an older release, these can be found in our `version archive `__ documentation. + + - `Enterprise Edition releases `__ + - `Team Edition releases `__ \ No newline at end of file diff --git a/source/install/install-mattermost-server-tarball.rst b/source/install/install-mattermost-server-tarball.rst new file mode 100644 index 00000000000..f2a30293cee --- /dev/null +++ b/source/install/install-mattermost-server-tarball.rst @@ -0,0 +1,91 @@ +:orphan: +:nosearch: + +Install the Mattermost Server by extracting the tarball, creating users and groups, and setting file/folder permissions. + +First extract the tarball: + +.. code-block:: none + :class: mm-code-block + + tar -xvzf mattermost*.gz + +Now move the entire folder to the ``/opt`` directory (or whatever path you require): + +.. code-block:: none + :class: mm-code-block + + sudo mv mattermost /opt + +.. note:: + + If you choose a custom path, ensure this alternate path is used in all steps that follow. + +By default the Mattermost Server uses ``/opt/mattermost/data`` as the folder for files. This can be changed in the System Console during setup (even using alternative storage such as S3). Create the default storage folder: + +.. code-block:: none + :class: mm-code-block + + sudo mkdir /opt/mattermost/data + +Now set up a user and group called ``mattermost``: + +.. code-block:: none + :class: mm-code-block + + sudo useradd --system --user-group mattermost + +.. note:: + + If you choose a custom user and group name, ensure it is used in all the steps that follow. + +Set the file and folder permissions for your installation: + +.. code-block:: none + :class: mm-code-block + + sudo chown -R mattermost:mattermost /opt/mattermost + +Give the ``mattermost`` group write permissions to the application folder: + +.. code-block:: none + :class: mm-code-block + + sudo chmod -R g+w /opt/mattermost + +You will now have the latest Mattermost Server version installed on your system. Starting and stopping the Mattermost Server is done using ``systemd``. Create the systemd unit file: + +.. code-block:: none + :class: mm-code-block + + sudo touch /lib/systemd/system/mattermost.service + +As root, edit the systemd unit file to add the following lines: + +.. code-block:: none + :class: mm-code-block + + [Unit] + Description=Mattermost + After=network.target + + [Service] + Type=notify + ExecStart=/opt/mattermost/bin/mattermost + TimeoutStartSec=3600 + KillMode=mixed + Restart=always + RestartSec=10 + WorkingDirectory=/opt/mattermost + User=mattermost + Group=mattermost + LimitNOFILE=49152 + + [Install] + WantedBy=multi-user.target + +Save the file and reload systemd using ``sudo systemctl daemon-reload``. Mattermost Server is now installed and is ready for setup. + +.. note:: + + If you are installing the Mattermost server on the same system as your database, you may want to add both ``After=postgresql.service`` and ``BindsTo=postgresql.service`` to the ``[Unit]`` section of the systemd unit file. diff --git a/source/install/install-rhel-8.rst b/source/install/install-rhel-8.rst index 140e49a6592..588c92c7b96 100644 --- a/source/install/install-rhel-8.rst +++ b/source/install/install-rhel-8.rst @@ -3,169 +3,99 @@ Install Mattermost on RHEL ========================== -.. include:: ../_static/badges/allplans-selfhosted.rst - :start-after: :nosearch: - -You can also use these instructions to install Mattermost on CentOS 8 or Oracle Linux 8. With the exception of the operating system that you install, the process is identical. - -.. include:: install-common-intro.rst - :start-after: :nosearch: - -.. contents:: Install and configure the components in the following order. - :depth: 2 - -.. include:: install-rhel-8-server.rst +.. raw:: html + +
+ +
+

+ + Available on all plans +

+

+ + Self-hosted deployments +

+
+ +
+

Minimum system requirements:

+
    +
  • Operating System: Enterprise Linux 7+, Oracle Linux 6+, Oracle Linux 7+ +
  • Hardware: 1 vCPU/core with 2GB RAM (support for up to 1,000 users)
  • +
  • Database: PostgreSQL v11+
  • +
  • Network: +
      +
    • Application 80/443, TLS, TCP Inbound
    • +
    • Administrator Console 8065, TLS, TCP Inbound
    • +
    • SMTP port 10025, TCP/UDP Outbound
    • +
    +
  • +
+
+ +
+ +.. tip:: + + If you are running the Mattermost Server and database on a single system, we recommend the `Mattermost Omnibus install method `__ as this greatly reduces setup and ongoing maintenance. + +.. contents:: On this page: + :backlinks: top + :local: + :depth: 1 + +Deployment includes 4 steps: `download <#download>`__, `install <#install>`__, `setup <#setup>`__, and `update <#updates>`__. + +Download the latest Mattermost Server tarball +--------------------------------------------- + +.. include:: download-latest-tarball.rst :start-after: :nosearch: -Install a database ------------------- - -.. note:: - - You only need one database: either PostgreSQL or MySQL. See the `database software `__ documentation for details on database version support. - -.. tabs:: - - .. tab:: Install PostgreSQL - - Install and set up a PostgreSQL database for use by the Mattermost server. - - 1. Log in to the server that will host the database, and open a terminal window. - - 2. Install PostgreSQL. See the `PostgreSQL `__ documentation for details. - - 3. Initialize the database by running ``sudo postgresql-setup initdb``. - - 4. Set PostgreSQL to start on boot by running ``sudo systemctl enable postgresql``. - - 5. Start the PostgreSQL server by running ``sudo systemctl start postgresql``. +Install +------- - 6. Switch to the *postgres* Linux user account that was created during the installation by running ``sudo -iu postgres``. +Ahead of installing the Mattermost Server, it’s good practice to update all your repositories and, where required, update existing packages by running the following commands: - 7. Start the PostgreSQL interactive terminal by running ``psql``. +.. code-block:: none + :class: mm-code-block - 8. Create the Mattermost database by running ``postgres=# CREATE DATABASE mattermost WITH ENCODING 'UTF8' LC_COLLATE='en_US.UTF-8' LC_CTYPE='en_US.UTF-8' TEMPLATE=template0;``. + sudo dnf update - 9. Create the Mattermost user *mmuser* by running ``postgres=# CREATE USER mmuser WITH PASSWORD 'mmuser-password';``. - - .. note:: +.. code-block:: none + :class: mm-code-block - Use a password that is more secure than ``mmuser-password``. - - 10. Grant the user access to the Mattermost database by running ``postgres=# GRANT ALL PRIVILEGES ON DATABASE mattermost to mmuser;``. - - 11. Exit the PostgreSQL interactive terminal by running ``postgres=# \q``. - - 12. Log out of the *postgres* account by running ``exit``. - - 13. (Optional) If you use separate servers for your database and the Mattermost app server, you may allow PostgreSQL to listen on all assigned IP Addresses. To do so, open ``/etc/postgresql/{version}/main/postgresql.conf`` as *root* in a text editor, and replacing ``{version}`` with the version of PostgreSQL that's currently running. As a best practice, ensure that only the Mattermost server is able to connect to the PostgreSQL port using a firewall. - - a. Open ``/var/lib/pgsql/data/postgresql.conf`` as root in a text editor. - - b. Find the following line: ``#listen_addresses = 'localhost'``. - - c. Uncomment the line and change ``localhost`` to ``*``: ``listen_addresses = '*'``. - - d. Restart PostgreSQL for the change to take effect: ``sudo systemctl restart postgresql``. - - 14. Modify the file ``pg_hba.conf`` to allow the Mattermost server to communicate with the database. - - **If the Mattermost server and the database are on the same machine:** - - a. Open ``/var/lib/pgsql/data/pg_hba.conf`` as root in a text editor. - - b. Find the following lines: - - ``local all all peer`` - - ``host all all ::1/128 ident`` - - c. Change ``peer`` and ``ident`` to ``trust``: + sudo dnf upgrade - ``local all all trust`` - - ``host all all ::1/128 trust`` +After any updates, and any system reboots, are complete, install the Mattermost Server. - **If the Mattermost server and the database are on different machines:** - - a. Open ``/var/lib/pgsql/data/pg_hba.conf`` as *root* in a text editor. - - b. Add the following line to the end of the file, where *{mattermost-server-IP}* is the IP address of the machine that contains the Mattermost server: ``host all all {mattermost-server-IP}/32 md5``. - - 15. Reload PostgreSQL by running ``sudo systemctl reload postgresql``. - - 16. Verify that you can connect with the user *mmuser*. - - a. If the Mattermost server and the database are on the same machine, use the following command: ``psql --dbname=mattermost --username=mmuser --password``. - - b. If the Mattermost server is on a different machine, log into that machine and use the following command: ``psql --host={postgres-server-IP} --dbname=mattermost --username=mmuser --password``. - - .. note:: - - You might have to install the PostgreSQL client software to use the command. - - The PostgreSQL interactive terminal starts. To exit the PostgreSQL interactive terminal, type ``\q`` and press **Enter**. - - With the database installed and the initial setup complete, you can now install the Mattermost server. - - .. tab:: Install MySQL - - Install and set up a MySQL database for use by the Mattermost server. - - 1. Log in to the server that will host the database, and open a terminal window. - - 2. Install MySQL. - - 3. Download and install the latest release package. - - 4. Disable the system MySQL by running ``sudo yum module disable mysql``, and install MySQL by running ``sudo yum install mysql-community-server``. - - 5. Start the MySQL server by running ``sudo systemctl start mysqld.service``. - - .. note:: - - The first time that you start MySQL: - - - The superuser account ``'root'@'localhost'`` is created with a password. Get this password by running ``sudo grep 'temporary password' /var/log/mysqld.log``. - - The ``validate_password`` plugin is installed. The plugin forces passwords to contain at least one upper case letter, one lower case letter, one digit, and one special character, and that the total password length is at least eight characters. - - 6. Change the root password. - - 7. Set MySQL to start automatically when the machine starts by running ``sudo systemctl enable mysqld``. +.. include:: install-mattermost-server-tarball.rst + :start-after: :nosearch: - 8. Create the Mattermost user *mmuser* by running ``mysql> create user 'mmuser'@'%' identified by 'mmuser-password';``. +Setup +----- - .. note:: - - - Use a password that's more secure than ``mmuser-password``. - - The ``%`` means that mmuser can connect from any machine on the network. However, it's more secure to use the IP address of the machine that hosts Mattermost. For example, if you install Mattermost on the machine with IP address ``10.10.10.2``, then use the following command: ``mysql> create user 'mmuser'@'10.10.10.2' identified by 'mmuser-password';``. +.. include:: setup-mattermost-server.rst + :start-after: :nosearch: - 9. Create the Mattermost database by running ``mysql> create database mattermost;``. +Updates +------- - 10. Grant access privileges to the user mmuser by running ``mysql> grant all privileges on mattermost.* to 'mmuser'@'%';``. - - .. note:: - - This query grants the MySQL user all privileges on the database for convenience. If you need more security, you can use the following query to grant the user only the privileges necessary to run Mattermost: ``mysql> GRANT ALTER, CREATE, DELETE, DROP, INDEX, INSERT, SELECT, UPDATE, REFERENCES ON mattermost.* TO 'mmuser'@'%';``. - - 11. Log out of MySQL by running ``mysql> exit``. +Updating your Mattermost Server installation when using the tarball requires several manual steps. See the `upgrade Mattermost Server `__ documentation for details. - With the database installed and the initial setup complete, you can now install the Mattermost server. +Remove Mattermost +------------------ -.. include:: install-rhel-8-mattermost.rst - :start-after: :nosearch: +If you wish to remove the Mattermost Server for any reason, you must stop the Mattermost Server, back up all important files, and then run this command: -.. include:: config-mattermost-server.rst - :start-after: :nosearch: +.. code-block:: none + :class: mm-code-block -.. include:: config-tls-mattermost.rst - :start-after: :nosearch: + sudo rm /opt/mattermost -.. include:: install-rhel-nginx.rst - :start-after: :nosearch: +.. note:: -.. include:: config-proxy-nginx.rst - :start-after: :nosearch: + Depending on your configuration, there are several important folders in ``/opt/mattermost`` to backup. These are ``config``, ``logs``, ``plugins``, ``client/plugins``, and ``data``. We strongly recommend you back up these locations before running the ``rm`` command. -.. include:: config-ssl-http2-nginx.rst - :start-after: :nosearch: +You may also remove the Mattermost systemd unit file and the user/group created for running the application. \ No newline at end of file diff --git a/source/install/install-tar.rst b/source/install/install-tar.rst index dac17d1a013..942fd7abad4 100644 --- a/source/install/install-tar.rst +++ b/source/install/install-tar.rst @@ -44,184 +44,25 @@ You can install the Mattermost Server on any 64-bit Linux system using the tarba :local: :depth: 1 -Deployment includes 3 steps: `download <#download-the-latest-mattermost-server-tarball>`__, `install <#install>`__, and `setup <#setup>`__. +Deployment includes 3 steps: `download <#download>`__, `install <#install>`__, and `setup <#setup>`__. -Download the latest Mattermost Server tarball ---------------------------------------------- +Download +-------- -In a terminal window, ssh onto the system that will host the Mattermost Server. - -Using ``wget``, download the Mattermost Server release you want to install. - -.. tabs:: - - .. tab:: Latest release - - .. raw:: html - -
- -
- - wget https://releases.mattermost.com/8.0.1/mattermost-8.0.1-linux-amd64.tar.gz - - Copied to clipboard -
- - - -
- - .. tab:: Current ESR - - .. raw:: html - -
- -
- - wget https://releases.mattermost.com/7.8.9/mattermost-7.8.9-linux-amd64.tar.gz - - Copied to clipboard -
- - - -
- - .. tab:: Older releases - - If you are looking for an older release, these can be found in our `version archive `__ documentation. - - - `Enterprise Edition releases `__ - - `Team Edition releases `__ +.. include:: download-latest-tarball.rst + :start-after: :nosearch: Install ------- -Install the Mattermost Server by extracting the tarball, creating users and groups, and setting file/folder permissions. - -First extract the tarball: - -.. code-block:: none - :class: mm-code-block - - tar -xvzf mattermost*.gz - -Now move the entire folder to the ``/opt`` directory (or whatever path you require): - -.. code-block:: none - :class: mm-code-block - - sudo mv mattermost /opt - -.. note:: - - If you choose a custom path, ensure this alternate path is used in all steps that follow. - -By default the Mattermost Server uses ``/opt/mattermost/data`` as the folder for files. This can be changed in the System Console during setup (even using alternative storage such as S3). Create the default storage folder: - -.. code-block:: none - :class: mm-code-block - - sudo mkdir /opt/mattermost/data - -Now set up a user and group called ``mattermost``: - -.. code-block:: none - :class: mm-code-block - - sudo useradd --system --user-group mattermost - -.. note:: - - If you choose a custom user and group name, ensure it is used in all the steps that follow. - -Set the file and folder permissions for your installation: - -.. code-block:: none - :class: mm-code-block - - sudo chown -R mattermost:mattermost /opt/mattermost - -Give the ``mattermost`` group write permissions to the application folder: - -.. code-block:: none - :class: mm-code-block - - sudo chmod -R g+w /opt/mattermost - -You will now have the latest Mattermost Server version installed on your system. Starting and stopping the Mattermost Server is done using ``systemd``. Create the systemd unit file: - -.. code-block:: none - :class: mm-code-block - - sudo touch /lib/systemd/system/mattermost.service - -As root, edit the systemd unit file to add the following lines: - -.. code-block:: none - :class: mm-code-block - - [Unit] - Description=Mattermost - After=network.target - - [Service] - Type=notify - ExecStart=/opt/mattermost/bin/mattermost - TimeoutStartSec=3600 - KillMode=mixed - Restart=always - RestartSec=10 - WorkingDirectory=/opt/mattermost - User=mattermost - Group=mattermost - LimitNOFILE=49152 - - [Install] - WantedBy=multi-user.target - -Save the file and reload systemd using ``sudo systemctl daemon-reload``. Mattermost Server is now installed and is ready for setup. - -.. note:: - - If you are installing the Mattermost server on the same system as your database, you may want to add both ``After=postgresql.service`` and ``BindsTo=postgresql.service`` to the ``[Unit]`` section of the systemd unit file. +.. include:: install-mattermost-server-tarball.rst + :start-after: :nosearch: Setup ------- - -Before you start the Mattermost Server, you need to edit the configuration file. A default configuration file is located at ``/opt/mattermost/config/config.json``. - -We recommend taking a backup of this default config ahead of making changes: - -.. code-block:: none - :class: mm-code-block - - sudo cp /opt/mattermost/config/config.json /opt/mattermost/config/config.defaults.json - -Configure the following properties in this file: - -* Set ``DriverName`` to ``"postgres"``. This is the default and recommended database for all Mattermost installations. -* Set ``DataSource`` to ``"postgres://mmuser:@:5432/mattermost?sslmode=disable&connect_timeout=10"`` replacing ``mmuser``, ````, ````, and ``mattermost`` with your database name. -* Set your ``"SiteURL"``: The domain name for the Mattermost application (e.g. ``https://mattermost.example.com``). - -After modifying the ``config.json`` configuration file, you can now start the Mattermost server: - -.. code-block:: none - :class: mm-code-block - - sudo systemctl start mattermost - -Verify that Mattermost is running: curl ``http://localhost:8065``. You should see the HTML that’s returned by the Mattermost Server. +----- -The final step, depending on your requirements, is to run sudo ``systemctl enable mattermost.service`` so that Mattermost will start on system boot. +.. include:: setup-mattermost-server.rst + :start-after: :nosearch: Updates ------- diff --git a/source/install/prepare-mattermost-database.rst b/source/install/prepare-mattermost-database.rst index b15a1368e8c..d10b22426cf 100644 --- a/source/install/prepare-mattermost-database.rst +++ b/source/install/prepare-mattermost-database.rst @@ -18,122 +18,186 @@ To set up a PostgreSQL database for use by the Mattermost server: .. code-block:: none :class: mm-code-block - + sudo -u postgres psql - + 3. Create the Mattermost database by running: - .. code-block:: none - :class: mm-code-block - - postgres=# CREATE DATABASE mattermost; + .. tabs:: + + .. tab:: Ubuntu + + .. code-block:: none + :class: mm-code-block + + postgres=# CREATE DATABASE mattermost; + + .. tab:: Red Hat + + .. code-block:: none + :class: mm-code-block + + postgres=# CREATE DATABASE mattermost WITH ENCODING 'UTF8' LC_COLLATE='en_US.UTF-8' LC_CTYPE='en_US.UTF-8' TEMPLATE=template0; 4. Create the Mattermost user *mmuser* by running the following command. Ensure you use a password that's more secure than ``mmuser-password``. .. code-block:: none :class: mm-code-block - + postgres=# CREATE USER mmuser WITH PASSWORD 'mmuser-password'; - + 5. If you're configuring PostgreSQL v15.x or later: a. Grant the user access to the Mattermost database by running: .. code-block:: none :class: mm-code-block - + postgres=# GRANT ALL PRIVILEGES ON DATABASE mattermost to mmuser; - + b. Grant access to objects contained in the specified schema by running: .. code-block:: none :class: mm-code-block - + GRANT USAGE, CREATE ON SCHEMA PUBLIC TO mmuser; 6. Exit the PostgreSQL interactive terminal by running: .. code-block:: none :class: mm-code-block - + postgres=# \q -7. (Optional) If you use separate servers for your database and the Mattermost server, you may allow PostgreSQL to listen on all assigned IP addresses by opening ``/etc/postgresql/{version}/main/postgresql.conf`` as *root* in a text editor, and replacing ``{version}`` with the version of PostgreSQL that's currently running. - - As a best practice, ensure that only the Mattermost server is able to connect to the PostgreSQL port using a firewall. +7. (Optional) If you use separate servers for your database and the Mattermost server, you may allow PostgreSQL to listen on all assigned IP addresses. We recommend ensuring that only the Mattermost server is able to connect to the PostgreSQL port using a firewall. - a. Find the following line: ``#listen_addresses = 'localhost'`` + .. tabs:: - b. Uncomment the line and change ``localhost`` to ``*``: ``listen_addresses = '*'`` + .. tab:: Ubuntu - c. Restart PostgreSQL for the change to take effect by running: + Open ``/etc/postgresql/{version}/main/postgresql.conf`` as *root* in a text editor. + + Replace ``{version}`` with the version of PostgreSQL that's currently running. - .. code-block:: none - :class: mm-code-block - - sudo systemctl restart postgresql + a. Find the following line: ``#listen_addresses = 'localhost'`` + + b. Uncomment the line and change ``localhost`` to ``*``: ``listen_addresses = '*'`` + + c. Restart PostgreSQL for the change to take effect by running: + + .. code-block:: none + :class: mm-code-block + + sudo systemctl restart postgresql-{version} + + .. tab:: Red Hat + + Open ``/var/lib/pgsql/{version}/data/postgresql.conf`` as *root* in a text editor. + + Replace ``{version}`` with the version of PostgreSQL that's currently running. + + a. Find the following line: ``#listen_addresses = 'localhost'`` + + b. Uncomment the line and change ``localhost`` to ``*``: ``listen_addresses = '*'`` + + c. Restart PostgreSQL for the change to take effect by running: + + .. code-block:: none + :class: mm-code-block + + sudo systemctl restart postgresql-{version} 8. Modify the file ``pg_hba.conf`` to allow the Mattermost server to communicate with the database by ensuring host connection types are set to ``trust``. - **Note**: - - These host connections are specific to Ubuntu 20.04, and will differ depending on the operating system you're running. For example, in Ubuntu 22.04, the ``peer`` connection types are listed as ``sha-256`` instead. + .. tabs:: -.. tabs:: + .. tab:: Ubuntu + + These host connections are specific to Ubuntu 20.04, and will differ depending on the operating system version you're running. For example, in Ubuntu 22.04, the ``peer`` connection types are listed as ``sha-256`` instead. - .. tab:: Single server deployment + **Local Database (same server)** - If the Mattermost server and the database are on the same machine: + If the Mattermost server and the database are on the same machine: - a. Open ``/etc/postgresql/{version}/main/pg_hba.conf`` as *root* in a text editor. + a. Open ``/etc/postgresql/{version}/main/pg_hba.conf`` as *root* in a text editor. b. Find the following lines: ``local all all peer`` - + ``host all all ::1/128 ident`` c. Change ``peer`` and ``ident`` to ``trust``: ``local all all trust`` - + ``host all all ::1/128 trust`` - .. tab:: Multi-server deployment - - If the Mattermost server and the database are on different machines: + **Remote Database (separate server)** + + If the Mattermost server and the database are on different machines: a. Open ``/etc/postgresql/{version}/main/pg_hba.conf`` in a text editor as *root* user. b. Add the following line to the end of the file, where ``{mattermost-server-IP}`` is the IP address of the Mattermost server: ``host all all {mattermost-server-IP}/32 md5``. -9. Reload PostgreSQL by running . + .. tab:: Red Hat + + These host connections are specific to Red Hat 8, and will differ depending on the operating system version you're running. + + **Local Database (same server)** + + If the Mattermost server and the database are on the same machine: + + a. Open ``/var/lib/pgsql/{version}/data/pg_hba.conf`` as *root* in a text editor. + + b. Find the following lines: + + ``local all all peer`` + + ``host all all ::1/128 scram-sha-256`` + + c. Change ``peer`` and ``ident`` to ``trust``: + + ``local all all trust`` + + ``host all all ::1/128 trust`` + + **Remote Database (separate server)** + + If the Mattermost server and the database are on different machines: + + a. Open ```/var/lib/pgsql/{version}/data/pg_hba.conf`` in a text editor as *root* user. + + b. Add the following line to the end of the file, where ``{mattermost-server-IP}`` is the IP address of the Mattermost server: ``host all all {mattermost-server-IP}/32 md5``. + +9. Reload PostgreSQL by running: .. code-block:: none :class: mm-code-block - - sudo systemctl reload postgresql + + sudo systemctl reload postgresql-{version} 10. Verify that you can connect with the user *mmuser*. .. tabs:: - .. tab:: Single server deployment + .. tab:: Local Database (same server) If the Mattermost server and the database are on the same machine, use the following command: .. code-block:: none :class: mm-code-block - + psql --dbname=mattermost --username=mmuser --password - .. tab:: Multi-server deployment - + .. tab:: Remote Database (separate server) + If the Mattermost server is on a different machine, log into that machine and use the following command: .. code-block:: none :class: mm-code-block - + psql --host={postgres-server-IP} --dbname=mattermost --username=mmuser --password .. note:: diff --git a/source/install/self-managed-changelog.md b/source/install/self-managed-changelog.md index e1ed0cd42ee..9e093581ada 100644 --- a/source/install/self-managed-changelog.md +++ b/source/install/self-managed-changelog.md @@ -14,7 +14,82 @@ Latest Mattermost Releases: ## Release v8.1 - [Extended Support Release](https://docs.mattermost.com/upgrade/release-definitions.html#extended-support-release-esr) -**Note:** v8.1.0 is currently delayed while we are working to resolve an issue where the Docker Content Trust signatures of our release images have expired. +**Release day: August 24, 2023** + +### Improvements + +#### User Interface (UI) + - Updated the user interface for the **Browse channels** modal. + - Increased the nickname field in the user interface from 22 to 64 characters. + - Updated links to documentation in the **System Console**. + - Emoji size is now in scale with the text size in the channel header. + - The emoji picker view modal is now displayed on mobile browsers. + - Prepackaged v1.2.2 of the Apps plugin. + - Prepackaged Focalboard plugin version 7.11.2. + - Prepackaged Playbooks version 1.38.0. + - Prepackaged Calls plugin version 0.18.0. + +#### Administration + - Added support for a separate Export storage and S3 presigned URLs generation for downloading the export files. + - Using ``https://github.com/reduxjs/redux-devtools`` in production builds is now allowed for webapp. + - Added a new feature flag, ``DataRetentionConcurrencyEnabled``, to enable/disable concurrency for data retention batch deletion. Also added a new configuration setting ``DataRetentionSettings.TimeBetweenBatchesMilliseconds`` to control the sleep time between batch deletions. + - Added a setting under **System Console > Authentication > Guest Access > Show Guest Tag** to remove the **Guest** badges from within the product. +- Added Apache 2.0 license to the public submodule, explicitly signalling to [pkg.go.dev](https://pkg.go.dev/github.com/mattermost/mattermost/server/public@v0.0.6) the license in play for this source code. + - Added the ability for admins to hide or customize the **Forgot password** link on the login page. + - The ``mattermost database reset`` command no longer starts the application server. It will only start the store layer and truncate the tables excluding the migrations table. + +### Bug Fixes + - Fixed an issue where scrollbars were not visible enough on the **File Preview** screen. + - Fixed an issue where SAML Admin Attribute only compared the first value instead of looping through the assertion values array. + - Fixed an issue where updates to recent emojis were not batched when multiple emojis were posted at once. + - Reverted a change that could cause the webapp to forget the current user's authentication method. + - Fixed an issue where drafts would persist after sending an ``@here`` mention in the right-hand side. + - Fixed an issue where the **New messages** toast appeared on channels that were completely visible. + - Fixed an UI issue related to profile popover on channel member search in the right hand pane. + - Fixed an issue where the multi-line channel header preview was too narrow on mobile web view. + - Fixed the render of the **Add Slash Command** page in the backstage area. + - Fixed an issue where user's timezone affected the date selection in the calendar. + - Fixed the clickable area of post textboxes being too small. + - Fixed an UI bug in the bot profile popover. + - Fixed an issue with missing time zone metadata in the Docker container. + - Fixed an issue with the ``registerMessageWillBeUpdatedHook`` plugin hook. + - Fixed an issue where the **Saved Posts** section would not show channel and team names. + - Fixed accessibility issues: tab support at login, reset and signup pages, and controls at the Apps bar. + +### config.json +Multiple setting options were added to ``config.json``. Below is a list of the additions and their default values on install. The settings can be modified in ``config.json``, or the System Console when available. + +#### Changes to all plans: + - Under ``PasswordSettings`` in ``config.json``: + - Added ``EnableForgotLink`` to add the ability for admins to hide or customize the **Forgot password** link on the login page. + - Under ``FileSettings`` + - Added various export store settings to add support for a new Export storage. + +#### Changes to Professional and Enterprise plans: + - Under ``GuestAccountsSettings`` in ``config.json``: + - Added ``HideTags`` to add the ability to remove the **Guest** badges from within the product. + +#### Changes to Enterprise plan: + - ``DataRetentionSettings`` in ``config.json``: + - Added ``TimeBetweenBatchesMilliseconds`` setting to control the sleep time between batch deletions. + +### Go Version + - v8.1 is built with Go ``v1.19.5``. + +### Known Issues + - Adding an @mention at the start of a post draft and pressing the left or right arrow key can clear the post draft and the undo history [MM-33823](https://mattermost.atlassian.net/browse/MM-33823). + - Google login fails on the Classic mobile apps. + - Status may sometimes get stuck as **Away** or **Offline** in High Availability mode with IP Hash turned off. + - Searching stop words in quotation marks with Elasticsearch enabled returns more than just the searched terms. + - The team sidebar on the desktop app does not update when channels have been read on mobile. + - Slack import through the CLI fails if email notifications are enabled. + - Push notifications don't always clear on iOS when running Mattermost in High Availability mode. + - The Playbooks left-hand sidebar doesn't update when a user is added to a run or playbook without a refresh. + - If a user isn't a member of a configured broadcast channel, posting a status update might fail without any error feedback. As a temporary workaround, join the configured broadcast channels, or remove those channels from the run configuration. + - The Playbooks left-hand sidebar does not update when a user is added to a run or playbook without a refresh. + +### Contributors + - [3kami3](https://github.com/3kami3), [agarciamontoro](https://github.com/agarciamontoro), [agnivade](https://github.com/agnivade), [akaMrDC](https://github.com/akaMrDC), [Alanchen](https://translate.mattermost.com/user/Alanchen), [amyblais](https://github.com/amyblais), [andrleite](https://github.com/andrleite), [austin-denoble](https://github.com/austin-denoble), [ayusht2810](https://github.com/ayusht2810), [azigler](https://github.com/azigler), [azistellar](https://translate.mattermost.com/user/azistellar), [bartoszpijet](https://github.com/bartoszpijet), [bbodenmiller](https://github.com/bbodenmiller), [BenCookie95](https://github.com/BenCookie95), [BodhiHu](https://github.com/BodhiHu), [CI-YU](https://translate.mattermost.com/user/CI-YU), [cpoile](https://github.com/cpoile), [crspeller](https://github.com/crspeller), [ctlaltdieliet](https://translate.mattermost.com/user/ctlaltdieliet), [cwarnermm](https://github.com/cwarnermm), [danielcw-fortuna](https://github.com/danielcw-fortuna), [devinbinnie](https://github.com/devinbinnie), [dirosv-eden](https://translate.mattermost.com/user/dirosv-eden), [dsharma522](https://github.com/dsharma522), [EduardoSellanes](https://github.com/EduardoSellanes), [emdecr](https://github.com/emdecr), [enahum](https://github.com/enahum), [esarafianou](https://github.com/esarafianou), [esethna](https://github.com/esethna), [fmartingr](https://github.com/fmartingr), [gabrieljackson](https://github.com/gabrieljackson), [guuw](https://translate.mattermost.com/user/guuw), [hanh.h.pham](https://translate.mattermost.com/user/hanh.h.pham), [harshal2030](https://github.com/harshal2030), [harshilsharma63](https://github.com/harshilsharma63), [hchorfispiria](https://github.com/hchorfispiria), [hmhealey](https://github.com/hmhealey), [ifoukarakis](https://github.com/ifoukarakis), [invalid-email-address](https://github.com/invalid-email-address), [isacikgoz](https://github.com/isacikgoz), [it33](https://github.com/it33), [janostgren](https://github.com/janostgren), [jasonblais](https://github.com/jasonblais), [jespino](https://github.com/jespino), [jlandells](https://github.com/jlandells), [johnsonbrothers](https://github.com/johnsonbrothers), [jprusch](https://github.com/jprusch), [JulienTant](https://github.com/JulienTant), [kaakaa](https://github.com/kaakaa), [karan2704](https://github.com/karan2704), [kayazeren](https://github.com/kayazeren), [komoon8934](https://github.com/komoon8934), [krmh04](https://github.com/krmh04), [Kshitij-Katiyar](https://github.com/Kshitij-Katiyar), [larkox](https://github.com/larkox), [LeonardJouve](https://github.com/LeonardJouve), [lieut-data](https://github.com/lieut-data), [linkvn](https://github.com/linkvn), [loganrosen](https://github.com/loganrosen), [lynn915](https://github.com/lynn915), [M-ZubairAhmed](https://github.com/M-ZubairAhmed), [mahaker](https://github.com/mahaker), [majo](https://translate.mattermost.com/user/majo), [manojmalik20](https://github.com/manojmalik20), [marianunez](https://github.com/marianunez), [master7](https://translate.mattermost.com/user/master7), [matinzd](https://github.com/matinzd), [matt-w99](https://github.com/matt-w99), [matthew-src](https://github.com/matthew-src), [matthew-w](https://translate.mattermost.com/user/matthew-w), [matthewbirtch](https://github.com/matthewbirtch), [mgdelacroix](https://github.com/mgdelacroix), [mickmister](https://github.com/mickmister), [mkdbns](https://github.com/mkdbns), [morgancz](https://github.com/morgancz), [mustdiechik](https://github.com/mustdiechik), [mvitale1989](https://github.com/mvitale1989), [namanh-asher](https://github.com/namanh-asher), [nickmisasi](https://github.com/nickmisasi), [notlelouch](https://github.com/notlelouch), [orta-contrib](https://github.com/orta-contrib), [panoramix360](https://github.com/panoramix360), [PedroHmaker](https://github.com/PedroHmaker), [phoinix-mm-test](https://github.com/phoinix-mm-test), [phoinixgrr](https://github.com/phoinixgrr), [pjenicot](https://github.com/pjenicot), [potatogim](https://github.com/potatogim), [pvev](https://github.com/pvev), [qryptdev](https://github.com/qryptdev), [ridwankabeer435](https://github.com/ridwankabeer435), [roadt](https://github.com/roadt), [saideepesh000](https://github.com/saideepesh000), [saturninoabril](https://github.com/saturninoabril), [sbishel](https://github.com/sbishel), [Sharuru](https://github.com/Sharuru), [ShrootBuck](https://github.com/ShrootBuck), [sinansonmez](https://github.com/sinansonmez), [sonichigo](https://github.com/sonichigo), [spirosoik](https://github.com/spirosoik), [sri-byte](https://github.com/sri-byte), [stafot](https://github.com/stafot), [streamer45](https://github.com/streamer45), [stylianosrigas](https://github.com/stylianosrigas), [Sudhanva-Nadiger](https://github.com/Sudhanva-Nadiger), [thefourcraft](https://github.com/thefourcraft), [thinkGeist](https://github.com/thinkGeist), [ThrRip](https://github.com/ThrRip), [timmycheng](https://github.com/timmycheng), [toninis](https://github.com/toninis), [tsabi](https://github.com/tsabi), [varghesejose2020](https://github.com/varghesejose2020), [veronicadip](https://github.com/veronicadip), [vish9812](https://github.com/vish9812), [wiersgallak](https://github.com/wiersgallak), [wiggin77](https://github.com/wiggin77), [Willyfrog](https://github.com/Willyfrog), [yasserfaraazkhan](https://github.com/yasserfaraazkhan), [yigitcan-prospr](https://github.com/yigitcan-prospr), [yomiadetutu1](https://github.com/yomiadetutu1) ## Release v8.0 - [Major Release](https://docs.mattermost.com/upgrade/release-definitions.html#major-release) diff --git a/source/install/setup-mattermost-server.rst b/source/install/setup-mattermost-server.rst new file mode 100644 index 00000000000..9180123ce91 --- /dev/null +++ b/source/install/setup-mattermost-server.rst @@ -0,0 +1,28 @@ +:orphan: +:nosearch: + +Before you start the Mattermost Server, you need to edit the configuration file. A default configuration file is located at ``/opt/mattermost/config/config.json``. + +We recommend taking a backup of this default config ahead of making changes: + +.. code-block:: none + :class: mm-code-block + + sudo cp /opt/mattermost/config/config.json /opt/mattermost/config/config.defaults.json + +Configure the following properties in this file: + +* Set ``DriverName`` to ``"postgres"``. This is the default and recommended database for all Mattermost installations. +* Set ``DataSource`` to ``"postgres://mmuser:@:5432/mattermost?sslmode=disable&connect_timeout=10"`` replacing ``mmuser``, ````, ````, and ``mattermost`` with your database name. +* Set your ``"SiteURL"``: The domain name for the Mattermost application (e.g. ``https://mattermost.example.com``). + +After modifying the ``config.json`` configuration file, you can now start the Mattermost server: + +.. code-block:: none + :class: mm-code-block + + sudo systemctl start mattermost + +Verify that Mattermost is running: curl ``http://localhost:8065``. You should see the HTML that’s returned by the Mattermost Server. + +The final step, depending on your requirements, is to run sudo ``systemctl enable mattermost.service`` so that Mattermost will start on system boot. \ No newline at end of file diff --git a/source/manage/bulk-export-data.rst b/source/manage/bulk-export-data.rst index c47d07fbf2d..1bd70b9804d 100644 --- a/source/manage/bulk-export-data.rst +++ b/source/manage/bulk-export-data.rst @@ -18,6 +18,10 @@ Bulk export data .. tab:: Use CLI + .. note:: + + From Mattermost v6.0, this command has been deprecated in favor of `mmctl export commands `__ as the supported way to export data out of Mattermost. + The export command runs in the `CLI `__. It has permissions to access all information in the Mattermost database. To run the export command: diff --git a/source/manage/cloud-data-export.rst b/source/manage/cloud-data-export.rst index 0811dd814f4..ad307d49191 100644 --- a/source/manage/cloud-data-export.rst +++ b/source/manage/cloud-data-export.rst @@ -4,6 +4,11 @@ Mattermost workspace migration .. include:: ../_static/badges/allplans-cloud.rst :start-after: :nosearch: +.. contents:: On this page + :backlinks: top + :depth: 1 + :local: + This document outlines the process for migrating from Mattermost Cloud to a Mattermost self-hosted instance. In the future, a process for migrating from Mattermost self-hosted to Mattermost Cloud will also be documented and provided here. Migrating between two installations follows the same process that's documented below, regardless as to whether the source or destination of the migration is in the Cloud or self-hosted. **These steps will work for any Mattermost instance**. @@ -89,7 +94,30 @@ This will show all of the exports on the server, so be sure to download the late Upload the export to the new server ----------------------------------- -Finally, it's time to take our export from the source server and use it as an import into the destination server. First, log into the destination server using ``mmctl`` the same way you logged into the source server: +Finally, it's time to take our export from the source server and use it as an import into the destination server. Before proceeding, review and modify the following self-hosted Mattermost configuration settings, where applicable, to ensure a smooth and successful import. + ++-----------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------+ +| **Mattermost configuration setting** | **Large file import recommendation** | ++-----------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------+ +| `Maximum Users Per Team | Increase this value to a number that **exceeds** the maximum number of users, per team, in the import file. | +| `__ | | ++-----------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------+ +| `Maximum File Size | Temporarily increase this value to be **larger** than the size of the import file. | +| `__ | Following a successful import, we strongly recommend reverting this value to a reasonable limit for daily expected usage. | ++-----------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------+ +| `Write Timeout | Temporarily adjust this value based on import file speed and network path to enable the file to upload without timeouts. | +| `__ | Start with a value of **3600** and adjust if needed. | +| | Following a successful import, we strongly recommend reverting this setting to its initial or previous value. | ++-----------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------+ +| `Read Timeout | Temporarily adjust this value based on import file speed and network path to enable the file to upload without timeouts. | +| `__ | Start with a value of **3600** and adjust if needed. | +| | Following a successful import, we strongly recommend reverting this setting to its initial or previous value. | ++-----------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------+ +| `Amazon S3 Request Timeout | If using cloud-based file storage, adjust this value to ensure your storage requests don't time out too soon. | +| `__ | | ++-----------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------+ + +Next, log into the destination server using ``mmctl`` the same way you logged into the source server: .. code:: diff --git a/source/manage/command-line-tools.rst b/source/manage/command-line-tools.rst index 1b6b9cc9f6c..2fb198d1f55 100644 --- a/source/manage/command-line-tools.rst +++ b/source/manage/command-line-tools.rst @@ -6,43 +6,30 @@ Command line tools In self-managed deployments, a ``mattermost`` command is available for configuring the system from the directory where the Mattermost server is installed. For an overview of the Mattermost command line interface (CLI), `read this article `__ from Santos. -These ``mattermost`` commands include the following functionality: - -**General administration** +.. important:: -- Create teams -- Create users -- Assign roles to users -- Reset user passwords -- Invite users to teams + From Mattermost v6.0, the majority of these CLI commands have been replaced with equivalents available using the `mmctl command line tool `__. However, `mattermost import `__ commands, `mattermost export `__ commands, and related subcommands, remain available and fully supported from Mattermost v6.0. -**Advanced administration** +These ``mattermost`` commands include the following functionality: -- Permanently delete users (use cautiously - database backup recommended before use) -- Permanently delete teams (use cautiously - database backup recommended before use) +**Compliance Export** -**Advanced automation** +- Export data +- Schedule an export job -- Create channels -- Invite users to channels -- Remove users from channels -- List all channels for a team -- Restore previously deleted channels -- Modify a channel's public/private type -- Migrate sign-in options -- Reset multi-factor authentication for a user -- Create sample data +**Database** -**Diagnostics** +- Initialize the database, execute migrations, and load custom defaults +- Migrate the database schema for unapplied migrations +- Reset the database to its initial state +- Return the most recently applied version number +- Roll back database migrations -- Analyze the database for relational consistency +**Server Operations** -.. note:: - - As of Mattermost v6.0, this CLI has been replaced with the `mmctl command line tool `__. However, `mattermost import `__ commands, `mattermost export `__ commands, and related subcommands, remain available and fully supported from Mattermost v6.0. - - The CLI is run in a single node which bypasses the mechanisms that a `High Availability environment `__ uses to perform actions across all nodes in the cluster. As a result, when running `CLI commands `__ in a High Availability environment, tasks such as creating and deleting users or changing configuration settings require a server restart. - - Parameters in CLI commands are order-specific. - - If special characters (``!``, ``|``, ``(``, ``)``, ``\``, ``'``, and ``"``) are used, the entire argument needs to be surrounded by single quotes (e.g. ``-password 'mypassword!'``, or the individual characters need to be escaped out (e.g. ``-password mypassword\!``). - - Team name and channel name refer to the handles, not the display names. So in the URL ``https://community.mattermost.com/core/channels/town-square`` team name would be ``core`` and channel name would be ``town-square``. +- Start the Mattermost job server +- Run the Mattermost server +- Display Mattermost version information Use the CLI ----------- @@ -98,6 +85,11 @@ Use the CLI The Docker Install tab details and command references below also apply to the `Mattermost docker preview image `__. +.. note:: + - The CLI is run in a single node which bypasses the mechanisms that a `High Availability environment `__ uses to perform actions across all nodes in the cluster. As a result, when running `CLI commands `__ in a High Availability environment, tasks that change configuration settings require a server restart. + - Parameters in CLI commands are order-specific. + - If special characters (``!``, ``|``, ``(``, ``)``, ``\``, ``'``, or ``"``) are used, the entire argument needs to be surrounded by single quotes, or the individual characters need to be escaped out. + mattermost cli commands ----------------------- @@ -111,2701 +103,360 @@ Options --disableconfigwatch {boolean} When true, the config.json file will not be reloaded automatically when another process changes it (default "false") Child Commands - - `mattermost channel`_ - Management of channels - - `mattermost command`_ - Management of slash commands - - `mattermost config`_ - Work with the configuration file - - `mattermost db init`_ - Initialize the database, execute migrations, and load custom defaults - - `mattermost db migrate`_ - Migrate the database schema for unapplied migrations - - `mattermost export`_ - Compliance export commands - - `mattermost extract-documents-content`_ - Extract and index the contents of files shared for legacy Mattermost Servers - - `mattermost group`_ - Management of Mattermost groups - - `mattermost group channel`_ - Manage Mattermost groups linked to a channel - - `mattermost group team`_ - Manage Mattermost groups linked to a team + - `mattermost db`_ - Database commands + - `mattermost export`_ - Compliance export commands - `mattermost help`_ - Generate full documentation for the CLI - - `mattermost import`_ - Import data - - `mattermost integrity`_ - Check database schema integrity as well as referential integrity of channels, slash commands, webhooks, posts, schemes, sessions, users, and teams + - `mattermost import`_ - Legacy import command - `mattermost jobserver`_ - Start the Mattermost job server - - `mattermost ldap`_ - AD/LDAP related utilities - - `mattermost license`_ - Licensing commands - - `mattermost logs`_ - Display human-readable logs - - `mattermost permissions`_ - Management of the permissions system - - `mattermost plugin`_ - Management of plugins - - `mattermost reset`_ - Reset the database to initial state - - `mattermost roles`_ - Management of user roles - - `mattermost sampledata`_ - Sample data generation - `mattermost server`_ - Run the Mattermost server - - `mattermost team`_ - Management of teams - - `mattermost user`_ - Management of users - `mattermost version`_ - Display version information - - `mattermost webhook`_ - Management of webhooks -mattermost channel ------------------- +mattermost db +-------------- Description - Commands for channel management. + Commands related to the database Child Commands - - `mattermost channel add`_ - Add users to a channel - - `mattermost channel archive`_ - Archive a channel - - `mattermost channel create`_ - Create a channel - - `mattermost channel delete`_ - Delete a channel - - `mattermost channel list`_ - List all channels on specified teams - - `mattermost channel modify`_ - Modify a channel's public/private type - - `mattermost channel move`_ - Move a channel to another team - - `mattermost channel remove`_ - Remove users from a channel - - `mattermost channel rename`_ - Rename a channel - - `mattermost channel restore`_ - Restore a channel from the archive - - `mattermost channel search`_ - Search a channel by name - -.. _channel-value-note: - -.. note:: - **{channel} value** - - For the *add*, *archive*, *delete*, *remove*, and *restore* commands, you can specify the *{channels}* value by {team}:{channel} using the team and channel URLs, or by using channel IDs. Channel IDs can be obtained via the `API `_ or the `mattermost channel search `__ command. - - For example, in the following URL the *{channels}* value is *myteam:mychannel*: ``https://example.com/myteam/channels/mychannel`` - - Also, the team and channel names in the URL should be written in lowercase. - -mattermost channel add -~~~~~~~~~~~~~~~~~~~~~~ + - `mattermost db downgrade`_ - Roll back database migrations. Requires either an update plan to roll back to, or comma-separated version numbers to be rolled back. + - `mattermost db init`_ - Initialize the database, execute migrations, and load custom defaults + - `mattermost db migrate`_ - Migrate the database schema for unapplied migrations + - `mattermost db reset`_ - Reset the database to its initial state + - `mattermost db version`_ - Return the most recently applied version number -.. note:: +Options + .. code-block:: none - From Mattermost v6.0, this command has been replaced with the mmctl command `mmctl channel add `__. + -h, --help help for db + -c, --config string Configuration file to use +mattermost db downgrade +~~~~~~~~~~~~~~~~~~~~~~~ Description - Add users to a channel. If adding multiple users, use a space-separated list. + Rolls back database migrations. Requires either an update plan to roll back to, or comma-separated version numbers to be rolled back. Format .. code-block:: none - mattermost channel add {channel} {users} - -Examples - .. code-block:: none - - bin/mattermost channel add 8soyabwthjnf9qibfztje5a36h user@example.com username - bin/mattermost channel add myteam:mychannel user@example.com username - -mattermost channel archive -~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. note:: - - From Mattermost v6.0, this command has been replaced with the mmctl command `mmctl channel archive `__. - + mattermost db downgrade -Description - Archive a channel. Archived channels are not accessible to users, but remain in the database. To restore a channel from the archive, see `mattermost channel restore`_. Channels can be specified by {team}:{channel} using the team and channel names, or by using channel IDs. Channel IDs can be obtained via the `API `_ or the `mattermost channel search `__ command. - -Format +Example .. code-block:: none - mattermost channel archive {channels} + mattermost db downgrade 99,100,101 -Examples +Options .. code-block:: none - bin/mattermost channel archive 8soyabwthjnf9qibfztje5a36h - bin/mattermost channel archive myteam:mychannel - -mattermost channel create -~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. note:: - - From Mattermost v6.0, this command has been replaced with the mmctl command `mmctl channel create `__. + -- string Runs the rollback migrations defined in the plan file. +mattermost db init +~~~~~~~~~~~~~~~~~~ Description - Create a channel. + Initializes the database for a given data source name (DSN), executes migrations, and loads custom defaults when specified. Format .. code-block:: none - mattermost channel create + mattermost db init Examples + Use the ``config`` flag to pass the DSN: + .. code-block:: none - bin/mattermost channel create --team myteam --name mynewchannel --display_name "My New Channel" - bin/mattermost channel create --team myteam --name mynewprivatechannel --display_name "My New Private Channel" --private - -Options + mattermost db init --config postgres://localhost/mattermost + + Run this command to use the ``MM_CONFIG`` environment variable: + .. code-block:: none + + MM_CONFIG=postgres://localhost/mattermost mattermost db init + + Run this command to set a custom defaults file to be loaded into the database: + + .. code-block:: none + + MM_CUSTOM_DEFAULTS_PATH=custom.json MM_CONFIG=postgres://localhost/mattermost mattermost db init - --display_name string Channel Display Name - --header string Channel header - --name string Channel Name - --private Create a private channel. - --purpose string Channel purpose - --team string Team name or ID - -mattermost channel delete -~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. note:: - - From Mattermost v6.0, this command has been replaced with the mmctl command `mmctl channel delete `__. +mattermost db migrate +~~~~~~~~~~~~~~~~~~~~~ Description - Permanently delete a channel along with all related information, including posts from the database. Channels can be specified by {team}:{channel} using the team and channel names, or by using channel IDs. Channel IDs can be obtained via the `API `_ or the `mattermost channel search `__ command. + Migrates the database schema if there are any unapplied migrations. + +Child Commands + - `mattermost db downgrade`_ - Roll back database migrations. Format .. code-block:: none - mattermost channel delete {channels} + mattermost db migrate -Examples +Example .. code-block:: none - bin/mattermost channel delete 8soyabwthjnf9qibfztje5a36h - bin/mattermost channel delete myteam:mychannel - -mattermost channel list -~~~~~~~~~~~~~~~~~~~~~~~ + mattermost db migrate -.. note:: +Options + .. code-block:: none - From Mattermost v6.0, this command has been replaced with the mmctl command `mmctl channel list `__. + --auto-recover bool If the migration plan receives an error during migrations, this command will try to rollback migrations already applied within the plan. Not recommended without reviewing migration plan by combining --save-plan and --dry-run options. + --save-plan bool Saves the plan for the migration into the file store so that it can be used for reviewing the plan or for downgrading. + --dry-run bool Does not apply the migrations, but it validates how the migration would run based on the given conditions. +mattermost db reset +~~~~~~~~~~~~~~~~~~~~ Description - List all channels on a specified team. Private channels are appended with ``(private)`` and archived channels are appended with ``(archived)``. + Resets the database to its initial state. Doesn't start the application server. Only starts the store layer and truncates the tables, excluding the ``migrations`` table. Format .. code-block:: none - mattermost channel list {teams} + mattermost db reset Example .. code-block:: none - bin/mattermost channel list myteam + bin/mattermost db reset -mattermost channel modify -~~~~~~~~~~~~~~~~~~~~~~~~~ +mattermost db version +~~~~~~~~~~~~~~~~~~~~~~ Description - Modify a channel's public/private type. + Returns the most recently applied version number. Format .. code-block:: none - mattermost channel modify + mattermost db version Example .. code-block:: none - bin/mattermost channel modify myteam:mychannel --username myusername --private + bin/mattermost export actiance --exportFrom=1513102632 Options .. code-block:: none - --username [REQUIRED] Username of the user who is changing the channel privacy. - --public Change a private channel to be public. - --private Change a public channel to be private. + --exportFrom string Unix timestamp (milliseconds since epoch, UTC) to export data from. + --batchSize int The number of posts to export. The default of -1 means no limit. -mattermost channel move -~~~~~~~~~~~~~~~~~~~~~~~ +---- -.. note:: +mattermost export +----------------- - From Mattermost v6.0, this command has been replaced with the mmctl command `mmctl channel move `__. +.. include:: ../_static/badges/ent-only.rst + :start-after: :nosearch: Description - Move channels to another team. The command validates that all users in the channel belong to the target team. Incoming/outgoing webhooks are moved along with the channel. Channels can be specified by ``[team]:[channel]`` or by using channel IDs. Channel IDs can be obtained via the `API `_ or the `mattermost channel search `__ command. - -Format - .. code-block:: none - - mattermost channel move - -Example - .. code-block:: none - - bin/mattermost channel move newteam 8soyabwthjnf9qibfztje5a36h --username myusername - bin/mattermost channel move newteam myteam:mychannel --username myusername - -Options - .. code-block:: none - - --username [REQUIRED] Username of the user who is moving the team. - --remove-deactivated-users [OPTIONAL] When moving the channel, remove any users who have been deactivated who may be preventing the move. - -mattermost channel remove -~~~~~~~~~~~~~~~~~~~~~~~~~ + Commands for exporting data for compliance and for merging multiple Mattermost instances. -.. note:: +Child Commands + - `mattermost export actiance`_ - Export data from Mattermost in Actiance XML format. Requires a Mattermost Enterprise subscription plan. + - `mattermost export bulk`_ - Export data to a file compatible with the Mattermost `Bulk Import format `__. Deprecated in favor of `mmctl export commands `__. + - `mattermost export csv`_ - Export data from Mattermost in CSV format. Requires a Mattermost Enterprise subscription plan. + - `mattermost export global-relay-zip`_ - Export data from Mattermost into a ZIP file containing emails to send to Global Relay for debug and testing purposes only. Requires a Mattermost Enterprise subscription plan. + - `mattermost export schedule`_ - Schedule an export job - From Mattermost v6.0, this command has been replaced with the mmctl command `mmctl channel remove `__. +mattermost export actiance +~~~~~~~~~~~~~~~~~~~~~~~~~~ Description - Remove users from a channel. + Export data from Mattermost in Actiance XML format. Format .. code-block:: none - mattermost channel remove {channel} {users} + mattermost export actiance -Examples +Example .. code-block:: none - bin/mattermost channel remove 8soyabwthjnf9qibfztje5a36h user@example.com username - bin/mattermost channel remove myteam:mychannel user@example.com username - bin/mattermost channel remove myteam:mychannel --all-users + bin/mattermost export actiance --exportFrom=1513102632 Options .. code-block:: none - --all-users string Remove all users from the channel. + --exportFrom string Unix timestamp (milliseconds since epoch, UTC) to export data from. + --batchSize int The number of posts to export. The default of -1 means no limit. -mattermost channel rename -~~~~~~~~~~~~~~~~~~~~~~~~~ +mattermost export bulk +~~~~~~~~~~~~~~~~~~~~~~ -.. note:: +From Mattermost v6.0, this command has been deprecated in favor of `mmctl export commands `__ as the supported way to export data out of Mattermost. - From Mattermost v6.0, this command has been replaced with the mmctl command `mmctl channel rename `__. +mattermost export csv +~~~~~~~~~~~~~~~~~~~~~ Description - Rename a channel. Channels can be specified by *{team}:{channel}* using the team and channel names, or by using channel IDs. Channel IDs can be obtained via the `API `_ or the `mattermost channel search `__ command. + Export data from Mattermost in CSV format. Format .. code-block:: none - mattermost channel rename {channel} newchannelname --display_name "New Display Name" + mattermost export csv -Examples +Example .. code-block:: none - bin/mattermost channel rename 8soyabwthjnf9qibfztje5a36h newchannelname --display_name "New Display Name" - bin/mattermost channel rename myteam:mychannel newchannelname --display_name "New Display Name" + bin/mattermost export csv --exportFrom=1513102632 Options .. code-block:: none - --display_name string Channel Display Name - -mattermost channel restore -~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. note:: + --exportFrom string Unix timestamp (seconds since epoch, UTC) to export data from. + --batchSize int The number of posts to export. The default of -1 means no limit. - From Mattermost v6.0, this command has been replaced with the mmctl command `mmctl channel restore `__. +mattermost export global-relay-zip +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Description - Restore a channel from the archive. Channels can be specified by {team}:{channel} using the team and channel names, or by using channel IDs. Channel IDs can be obtained via the `API `_ or the `mattermost channel search `__ command. - + Export data from Mattermost into a zip file containing emails to send to Global Relay for debug and testing purposes only. This does not archive any information in Global Relay. + Format .. code-block:: none - mattermost channel restore {channels} + mattermost export global-relay-zip -Examples +Example .. code-block:: none - bin/mattermost channel restore 8soyabwthjnf9qibfztje5a36h - bin/mattermost channel restore myteam:mychannel + bin/mattermost export global-relay-zip --exportFrom=1513102632 -mattermost channel search -~~~~~~~~~~~~~~~~~~~~~~~~~ +Options + .. code-block:: none -.. note:: + --exportFrom string Unix timestamp (seconds since epoch, UTC) to export data from. + --batchSize int The number of posts to export. The default of -1 means no limit. - From Mattermost v6.0, this command has been replaced with the mmctl command `mmctl channel search `__. +mattermost export schedule +~~~~~~~~~~~~~~~~~~~~~~~~~~ Description - Search for a channel by channel name. Returns channel display name, channel Id, and indicates if it is private or archived. Private channels are appended with ``(private)`` and archived channels are appended with ``(archived)``. + Schedule an export job in a format suitable for importing into a third-party archive system. Format .. code-block:: none - mattermost channel search {channelName} + mattermost export schedule -Examples +Example .. code-block:: none - bin/mattermost channel search mychannel - bin/mattermost channel search --team myteam mychannel - bin/mattermost channel search --team f1924a8db44ff3bb41c96424cdc20676 mychannel + bin/mattermost export schedule --format=actiance --exportFrom=1513102632 Options .. code-block:: none - --team Team Name or Team ID + --format string Output file format. Currently, only ``actiance`` is supported. + --exportFrom string Unix timestamp (seconds since epoch, UTC) to export data from. + --timeoutSeconds string Set how long the export should run for before timing out. ---- -mattermost command ------------------- - -Description - Commands for slash command management. - -Child Commands - - `mattermost command create`_ - Create a custom slash command for a specified team. - - `mattermost command delete`_ - Delete a slash command. - - `mattermost command list`_ - List all commands on specified teams or all teams by default. - - `mattermost command modify`_ - Modify a slash command. - - `mattermost command move`_ - Move a slash command to a different team. - - `mattermost command show`_ - Show a custom slash command. - -mattermost command create -~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. note:: - - From Mattermost v6.0, this command has been replaced with the mmctl command `mmctl command create `__. +mattermost help +--------------- Description - Create a custom slash command for a specified team. + Generate full documentation in Markdown format for the Mattermost command line tools. Format .. code-block:: none - mattermost command create - -Examples - .. code-block:: none - - bin/mattermost command create myteam --title MyCommand --description "My Command Description" --trigger-word mycommand --url http://localhost:8000/my-slash-handler --creator myusername --response-username my-bot-username --icon http://localhost:8000/my-slash-handler-bot-icon.png --autocomplete --post - -Options - .. code-block:: none + mattermost help {outputdir} - --title string Command Title - --description string Command Description - --trigger-word string [REQUIRED] Command Trigger Word - --url string [REQUIRED] Command Callback URL - --creator string [REQUIRED] Command Creator's Username - --response-username string Command Response Username - --icon string Command icon URL - --autocomplete bool Show command in autocomplete list - --autocompleteDesc string Short command description for autocomplete list - --autocompleteHint string Command arguments displayed as help in autocomplete list - --post bool Use POST method for callback URL - -mattermost command delete -~~~~~~~~~~~~~~~~~~~~~~~~~ +.. _command-line-tools-mattermost-jobserver: -.. note:: +---- - From Mattermost v6.0, this command has been replaced with the mmctl command `mmctl command delete `__. +mattermost import +----------------- Description - Delete a slash command. Commands can be specified by command ID. - -Format - .. code-block:: none + Import data into Mattermost. - mattermost command delete {commandID} +Child Command + - `mattermost import bulk`_ - Import a Mattermost Bulk Import File. Deprecated in favor of `mmctl import commands `__. + - `mattermost import slack`_ - Import a team from Slack. -Examples - .. code-block:: none +mattermost import bulk +~~~~~~~~~~~~~~~~~~~~~~ - bin/mattermost command delete commandID +From Mattermost v6.0, this command has been deprecated in favor of `mmctl import commands `__ as the supported way to import data into Mattermost. -mattermost command list +mattermost import slack ~~~~~~~~~~~~~~~~~~~~~~~ -.. note:: - - From Mattermost v6.0, this command has been replaced with the mmctl command `mmctl command list `__. - +See the `mmctl import commands `__ documentation as the preferred way to import Slack data into Mattermost. Description - List all commands on specified teams or all teams by default. + Import a team from a Slack export zip file. Format - .. code-block:: none + . code-block:: none - mattermost command list {team} + mattermost import slack {team} {file} -Examples +Example .. code-block:: none - bin/mattermost command list myteam - -mattermost command modify -~~~~~~~~~~~~~~~~~~~~~~~~~~ + bin/mattermost import slack myteam slack_export.zip -Description - Modify a slash command. Commands can be specified by command ID. +---- -.. note:: - Only fields that you want to modify need to be specified. Also, when modifying the command's creator, the new creator specified must have the permission to create commands. +mattermost jobserver +-------------------- +Description + Start the Mattermost job server. Format .. code-block:: none - mattermost command modify {commandID} + mattermost jobserver -Examples +Example .. code-block:: none - bin/mattermost command modify commandID --title MyModifiedCommand --description "My Modified Command Description" --trigger-word mycommand --url http://localhost:8000/my-slash-handler --creator myusername --response-username my-bot-username --icon http://localhost:8000/my-slash-handler-bot-icon.png --autocomplete --post + bin/mattermost jobserver -Options - .. code-block:: none +---- - --title string Command Title - --description string Command Description - --trigger-word string Command Trigger Word - --url string Command Callback URL - --creator string Command Creator's Username - --response-username string Command Response Username - --icon string Command Icon URL - --autocomplete bool Show command in autocomplete list - --autocompleteDesc string Short command description for autocomplete list - --autocompleteHint string Command arguments displayed as help in autocomplete list - --post bool Use POST method for callback URL, else use GET method - -mattermost command move -~~~~~~~~~~~~~~~~~~~~~~~ +mattermost server +----------------- Description - Move a slash command to a different team. Commands can be specified by {team}:{command-trigger-word}, or by using command IDs. + Runs the Mattermost server. Format .. code-block:: none - mattermost command move - -Examples - .. code-block:: none + mattermost server - bin/mattermost command move newteam oldteam:command-trigger-word - bin/mattermost command move newteam o8soyabwthjnf9qibfztje5a36h +---- -mattermost command show -~~~~~~~~~~~~~~~~~~~~~~~ +mattermost version +------------------ -Description - Show a custom slash command. Commands can be specified by command ID. Returns command ID, team ID, trigger word, display name and creator username. +.. note:: -Format - .. code-block:: none + From Mattermost v6.5, this CLI command no longer interacts with the database. The `mattermost db migrate `__ CLI command has been introduced to trigger schema migrations. - command show {commandID} +Desription + Displays Mattermost version information. -Examples +Format .. code-block:: none - bin/mattermost command show commandID + mattermost version ---- -mattermost config ------------------ - -Description - Commands for managing the configuration file. - -Child Command - - `mattermost config get`_ - Retrieve the value of a config setting by its name in dot notation. - - `mattermost config migrate`_ - Migrate a file-based configuration to (or from) a database-based configuration. - - `mattermost config reset`_ - Resets the value of a config setting by its name in dot notation or a setting section. - - `mattermost config set`_ - Set the value of a config setting by its name in dot notation. - - `mattermost config show`_ - Print the current mattermost configuration in an easy to read format. - - `mattermost config validate`_ - Validate the configuration file. - -mattermost config get -~~~~~~~~~~~~~~~~~~~~~ - -.. note:: - - From Mattermost v6.0, this command has been replaced with the mmctl command `mmctl config get `__. - -Description - Retrieve the value of a config setting by its name in dot notation. - -Format - .. code-block:: none - - mattermost config get {config.name} - -Examples - .. code-block:: none - - bin/mattermost config get SqlSettings.DriverName - -Options - .. code-block:: none - - --path string Optional subpath; defaults to value in Site URL. - -mattermost config migrate -~~~~~~~~~~~~~~~~~~~~~~~~~ - -Description - Migrate a file-based configuration to (or from) a database-based configuration. Point the Mattermost server at the target configuration to start using it. If using SAML, ensure the SAML certificates and keys are accessible to also migrate into the database. - -.. note:: - If a ``from`` parameter is not specified, the command will fall back to what is specified in --config. - -Format - .. code-block:: none - - mattermost config migrate {config to read} {config to write} - -Examples - .. code-block:: none - - bin/mattermost config migrate path/to/config.json "postgres://mmuser:mostest@dockerhost:5432/mattermost_test?sslmode=disable&connect_timeout=10" - -mattermost config reset -~~~~~~~~~~~~~~~~~~~~~~~~~ - -Description - Resets the value of a config setting by its name in dot notation or a setting section to the default value. Accepts multiple values for array settings. When no parameters are given, it will reset all config settings. - -Format - .. code-block:: none - - mattermost config reset {config.name} {setting section} - -Examples - .. code-block:: none - - bin/mattermost config reset SqlSettings.DriverName LogSettings - -Options - .. code-block:: none - - --confirm Confirm you really want to reset the config setting and a backup has been performed. - -mattermost config set -~~~~~~~~~~~~~~~~~~~~~ - -Description - Set the value of a config setting by its name in dot notation. Accepts multiple values for array settings. - -Format - .. code-block:: none - - mattermost config set {config.name} {setting new value} - -Examples - .. code-block:: none - - bin/mattermost config set SqlSettings.DriverName postgres - -Options - .. code-block:: none - - --path string Optional subpath; defaults to value in Site URL. - -mattermost config show -~~~~~~~~~~~~~~~~~~~~~~ - -.. note:: - - From Mattermost v6.0, this command has been replaced with the mmctl command `mmctl config `__. - -Description - Print the current mattermost configuration in an easy to read format. - -Format - .. code-block:: none - - mattermost config show - -Examples - .. code-block:: none - - bin/mattermost config show - -mattermost config validate -~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Description - Makes sure the configuration file has the following properties: - - - Is valid JSON. - - Has attributes of the correct type, such as *bool*, *int*, and *str*. - - All entries are valid. For example, checks that entries are below the maximum length. - -Format - .. code-block:: none - - mattermost config validate - -Example - .. code-block:: none - - bin/mattermost config validate - ----- - -mattermost db init ------------------- - -Description - Initializes the database for a given data source name (DSN), executes migrations, and loads custom defaults when specified. - -Format - .. code-block:: none - - mattermost db init - -Examples - Use the ``config`` flag to pass the DSN: - - .. code-block:: none - - mattermost db init --config postgres://localhost/mattermost - - Run this command to use the ``MM_CONFIG`` environment variable: - - .. code-block:: none - - MM_CONFIG=postgres://localhost/mattermost mattermost db init - - Run this command to set a custom defaults file to be loaded into the database: - - .. code-block:: none - - MM_CUSTOM_DEFAULTS_PATH=custom.json MM_CONFIG=postgres://localhost/mattermost mattermost db init - ----- - -mattermost db migrate ---------------------- - -Description - Migrates the database schema if there are any unapplied migrations. - -Child Commands - - `mattermost db downgrade`_ - Roll back database migrations. - -Format - .. code-block:: none - - mattermost db migrate - -Example - .. code-block:: none - - mattermost db migrate - -Options - .. code-block:: none - - --auto-recover bool If the migration plan receives an error during migrations, this command will try to rollback migrations already applied within the plan. Not recommended without reviewing migration plan by combining --save-plan and --dry-run options. - --save-plan bool Saves the plan for the migration into the file store so that it can be used for reviewing the plan or for downgrading. - --dry-run bool Does not apply the migrations, but it validates how the migration would run based on the given conditions. - -mattermost db downgrade -~~~~~~~~~~~~~~~~~~~~~~~ - -Description - Rolls back database migrations. Requires either an update plan to roll back to, or comma-separated version numbers to be rolled back. - -Format - .. code-block:: none - - mattermost db downgrade - -Example - .. code-block:: none - - mattermost db downgrade 99,100,101 - -Options - .. code-block:: none - - -- string Runs the rollback migrations defined in the plan file. - ----- - -mattermost export ------------------ - -Description - Commands for exporting data for compliance and for merging multiple Mattermost instances. - -Child Commands - - `mattermost export actiance`_ - Export data from Mattermost in Actiance XML format. Requires a Mattermost Enterprise subscription plan. - - `mattermost export bulk`_ - Export data to a file compatible with the Mattermost `Bulk Import format `__ - - `mattermost export csv`_ - Export data from Mattermost in CSV format. Requires a Mattermost Enterprise subscription plan. - - `mattermost export global-relay-zip`_ - Export data from Mattermost into a ZIP file containing emails to send to Global Relay for debug and testing purposes only. Requires a Mattermost Enterprise subscription plan. - - `mattermost export schedule`_ - Schedule an export job - -mattermost export actiance -~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Description - Export data from Mattermost in Actiance XML format. - -Format - .. code-block:: none - - mattermost export actiance - -Example - .. code-block:: none - - bin/mattermost export actiance --exportFrom=1513102632 - -Options - .. code-block:: none - - --exportFrom string Unix timestamp (milliseconds since epoch, UTC) to export data from. - --batchSize int The number of posts to export. The default of -1 means no limit. - -mattermost export bulk -~~~~~~~~~~~~~~~~~~~~~~ - -Description - Export data to a file compatible with the Mattermost `Bulk Import format `__. - -Format - .. code-block:: none - - mattermost export bulk - -Example - .. code-block:: none - - bin/mattermost export bulk file.json --all-teams - -Options - .. code-block:: none - - --all-teams bool [REQUIRED] Export all teams from the server. - --attachments bool Also export file attachments. - --archive bool Outputs a single archive file. - -mattermost export csv -~~~~~~~~~~~~~~~~~~~~~ - -Description - Export data from Mattermost in CSV format. - -Format - .. code-block:: none - - mattermost export csv - -Example - .. code-block:: none - - bin/mattermost export csv --exportFrom=1513102632 - -Options - .. code-block:: none - - --exportFrom string Unix timestamp (seconds since epoch, UTC) to export data from. - --batchSize int The number of posts to export. The default of -1 means no limit. - -mattermost export global-relay-zip -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Description - Export data from Mattermost into a zip file containing emails to send to Global Relay for debug and testing purposes only. This does not archive any information in Global Relay. - -Format - .. code-block:: none - - mattermost export global-relay-zip - -Example - .. code-block:: none - - bin/mattermost export global-relay-zip --exportFrom=1513102632 - -Options - .. code-block:: none - - --exportFrom string Unix timestamp (seconds since epoch, UTC) to export data from. - --batchSize int The number of posts to export. The default of -1 means no limit. - -mattermost export schedule -~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Description - Schedule an export job in a format suitable for importing into a third-party archive system. - -Format - .. code-block:: none - - mattermost export schedule - -Example - .. code-block:: none - - bin/mattermost export schedule --format=actiance --exportFrom=1513102632 - -Options - .. code-block:: none - - --format string Output file format. Currently, only ``actiance`` is supported. - --exportFrom string Unix timestamp (seconds since epoch, UTC) to export data from. - --timeoutSeconds string Set how long the export should run for before timing out. - ----- - -mattermost extract-documents-content -------------------------------------- - -Description - Extracts and indexes the contents of files shared prior to upgrading to Mattermost Server v5.35. Running this command is strongly recommended since search results for past file contents may be incomplete. If this command isn't run, users can search older files based on filename only. - - If you're using `Elasticsearch `__ search, you must rebuild the search index after running the content extraction command. - - If you're using `Bleve `__ search, you must disable Bleve before running the content extraction command. Once extraction is complete, re-enable Bleve, then rebuild the search index. - - You can run this extraction command while the server is running. Running this command adds load to your server. For large deployments, or teams that share many large, text-heavy documents, we recommended you review our `hardware requirements `__, and test `enabling content search `__ in a staging environment before enabling it in a production environment. - -Format - .. code-block:: none - - mattermost extract-documents-content - -Example - .. code-block:: none - - extract-documents-content --from=12345 - -Options - .. code-block:: none - - --from Optional. Unix timestamp (seconds since epoch, UTC) of the earliest file to extract. (default 0) - --to Optional. Unix timestamp (seconds since epoch, UTC) of the latest file to extract. (default now) - ----- - -mattermost group ------------------ - -Description - Commands for managing Mattermost groups. For more information on Mattermost groups please see `this documentation. `__. - -Child Commands - - `mattermost group channel`_ - Management of Mattermost groups linked to channels - - `mattermost group team`_ - Management of Mattermost groups linked to teams - ----- - -mattermost group channel ------------------------- - -.. note:: - - From Mattermost v6.0, this command has been replaced with the mmctl command `mmctl group channel `__. - - -Description - Commands for managing Mattermost groups linked to a channel. - -Child Commands - - `mattermost group channel enable`_ - Enables group constraint on the specified channel - - `mattermost group channel disable`_ - Disables group constraint on the specified channel - - `mattermost group channel list`_ - Lists the groups associated with a channel - - `mattermost group channel status`_ - Shows the group constraint status of the specified channel - -mattermost group channel enable -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. note:: - - From Mattermost v6.0, this command has been replaced with the mmctl command `mmctl group channel enable `__. - - -Description - Enables group constraint on the specified channel. When a channel is group constrained, channel membership is managed by linked groups instead of managed by manually adding and removing users. - -.. note:: - To enable a group constraint on a specific channel, you must already have at least one group associated. See `AD/LDAP Group documentation `_ for more details on how to associate a group to a channel. - -Format - .. code-block:: none - - mattermost group channel enable {team}:{channel} - -Examples - .. code-block:: none - - bin/mattermost group channel enable myteam:mychannel - -mattermost group channel disable -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. note:: - - From Mattermost v6.0, this command has been replaced with the mmctl command `mmctl group channel disable `__. - -Description - Disables group constraint on the specified channel. - -Format - .. code-block:: none - - mattermost group channel disable {team}:{channel} - -Examples - .. code-block:: none - - bin/mattermost group channel disable myteam:mychannel - -mattermost group channel list -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. note:: - - From Mattermost v6.0, this command has been replaced with the mmctl command `mmctl group channel list `__. - -Description - Lists the groups associated with a channel. - -Format - .. code-block:: none - - mattermost group channel list {team}:{channel} - -Examples - .. code-block:: none - - bin/mattermost group channel list myteam:mychannel - -mattermost group channel status -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. note:: - - From Mattermost v6.0, this command has been replaced with the mmctl command `mmctl group channel status `__. - -Description - Shows the group constraint status of the specified channel. Returns "Enabled" when channel membership is managed by linked groups. Returns "Disabled" when the channel membership is managed by manually adding and removing users. - -Format - .. code-block:: none - - mattermost group channel status {team}:{channel} - -Examples - .. code-block:: none - - bin/mattermost group channel status myteam:mychannel - ----- - -mattermost group team ------------------------- - -.. note:: - - From Mattermost v6.0, this command has been replaced with the mmctl command `mmctl group team `__. - -Description - Commands for managing Mattermost groups linked to a team. - -Child Commands - - `mattermost group team enable`_ - Enables group constraint on the specified team - - `mattermost group team disable`_ - Disables group constraint on the specified team - - `mattermost group team list`_ - Lists the groups associated with a team - - `mattermost group team status`_ - Shows the group constraint status of the specified team - -mattermost group team enable -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. note:: - - From Mattermost v6.0, this command has been replaced with the mmctl command `mmctl group team enable `__. - -Description - Enables group constraint on the specified team. When a team is group constrained, team membership is managed by linked groups instead of managed by manually inviting and removing users. - -.. note:: - To enable a group constraint on a specific team, you must already have at least one group associated. See `AD/LDAP Group documentation `_ for more details on how to associate a group to a team. - -Format - .. code-block:: none - - mattermost group team enable {team} - -Examples - .. code-block:: none - - bin/mattermost group team enable myteam - -mattermost group team disable -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. note:: - - From Mattermost v6.0, this command has been replaced with the mmctl command `mmctl group team disable `__. - -Description - Disables group constraint on the specified team. - -Format - .. code-block:: none - - mattermost group team disable {team} - -Examples - .. code-block:: none - - bin/mattermost group team disable myteam - -mattermost group team list -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. note:: - - From Mattermost v6.0, this command has been replaced with the mmctl command `mmctl group team list `__. - -Description - Lists the groups associated with a team. - -Format - .. code-block:: none - - mattermost group team list {team} - -Examples - .. code-block:: none - - bin/mattermost group team list myteam - -mattermost group team status -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. note:: - - From Mattermost v6.0, this command has been replaced with the mmctl command `mmctl group team status `__. - -Description - Shows the group constraint status of the specified team. Returns "Enabled" when team membership is managed by linked groups. Returns "Disabled" when the team membership is managed by manually inviting and removing users. - -Format - .. code-block:: none - - mattermost group team status {team} - -Examples - .. code-block:: none - - bin/mattermost group team status myteam - ----- - -mattermost help ---------------- - -Description - Generate full documentation in Markdown format for the Mattermost command line tools. - -Format - .. code-block:: none - - mattermost help {outputdir} - ----- - -mattermost import ------------------ - -Description - Import data into Mattermost. - -Child Command - - `mattermost import bulk`_ - Import a Mattermost Bulk Import File. - - `mattermost import slack`_ - Import a team from Slack. - -mattermost import bulk -~~~~~~~~~~~~~~~~~~~~~~ - -Description - Import data from a Mattermost Bulk Import File. - -Format - .. code-block:: none - - mattermost import bulk {file} - -Options - .. code-block:: none - - --apply Save the import data to the database. Use with caution - this cannot be reverted. - --validate Validate the import data without making any changes to the system. - -workers int How many workers to run whilst doing the import. (default 2) - -Example - .. code-block:: none - - bin/mattermost import bulk bulk-file.jsonl - -mattermost import slack -~~~~~~~~~~~~~~~~~~~~~~~ - -Description - Import a team from a Slack export zip file. - -Format - . code-block:: none - - mattermost import slack {team} {file} - -Example - .. code-block:: none - - bin/mattermost import slack myteam slack_export.zip - ----- - -mattermost integrity --------------------- - -Description - Check database schema integrity as well as referential integrity of channels, slash commands, webhooks, posts, schemes, sessions, users, and teams. This process may temporarily affect live system performance, and should be used during off-peak periods. - -Format - .. code-block:: none - - mattermost integrity - -Example - .. code-block:: none - - bin/mattermost integrity --confirm --verbose - -Options - .. code-block:: none - - --confirm Optional. Skip the confirmation message which indicates that the complete integrity check may temporarily harm system performance. This is not recommended in production environments. - --verbose Outputs a detailed report of number and type of orphaned records including ids (if any). - ----- - -.. _command-line-tools-mattermost-jobserver: - -mattermost jobserver --------------------- - -Description - Start the Mattermost job server. - -Format - .. code-block:: none - - mattermost jobserver - -Example - .. code-block:: none - - bin/mattermost jobserver - ----- - -mattermost ldap ---------------- - -Description - Commands to configure and synchronize AD/LDAP. - -Child Command - - `mattermost ldap idmigrate`_ - Migrate the LDAP Id Attribute to a new value - - `mattermost ldap sync`_ - Synchronize now - -mattermost ldap idmigrate -~~~~~~~~~~~~~~~~~~~~~~~~~ - -Description - Migrate LDAP Id Attribute to new value. - - Run this utility to change the value of your ID Attribute without your users losing their accounts. After running the command you can change the ID Attribute to the new value in your ``config.json``. For example, if your current ID Attribute was ``sAMAccountName`` and you wanted to change it to ``objectGUID``, you would: - - 1. Wait for an off-peak time when your users won't be impacted by a server restart. - 2. Run the command ``mattermost ldap idmigrate objectGUID``. - 3. Edit your ``config.json`` and change your ``IdAttribute`` field to the new value ``objectGUID``. - 4. Restart the Mattermost server. - -Format - .. code-block:: none - - mattermost ldap idmigrate {attribute} - -Example - .. code-block:: none - - bin/mattermost ldap idmigrate objectGUID - -mattermost ldap sync -~~~~~~~~~~~~~~~~~~~~ - -.. note:: - - From Mattermost v6.0, this command has been replaced with the mmctl command `mmctl ldap sync `__. - -Description - Synchronize all AD/LDAP users now. - -Format - .. code-block:: none - - mattermost ldap sync - -Example - .. code-block:: none - - bin/mattermost ldap sync - ----- - -mattermost license ------------------- - -Description - Commands to manage licensing. - -Child Command - - `mattermost license upload`_ - Upload a license. - -mattermost license upload -~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. note:: - - From Mattermost v6.0, this command has been replaced with the mmctl command `mmctl license upload `__. - -Description - Upload a license. This command replaces the current license if one is already uploaded. - -Format - .. code-block:: none - - mattermost license upload {license} - -Example - .. code-block:: none - - bin/mattermost license upload /path/to/license/mylicensefile.mattermost-license - -.. note:: - The Mattermost server needs to be restarted after uploading a license file for any changes to take effect. Also, for cluster setups the license file needs to be uploaded to every node. - ----- - -mattermost logs ----------------- - -.. note:: - - From Mattermost v6.0, this command has been replaced with the mmctl command `mmctl logs `__. - -Description - Displays Mattermost logs in a human-readable format. - -Format - .. code-block:: none - - mattermost logs - -Example - .. code-block:: none - - bin/mattermost logs --logrus - -Options - .. code-block:: none - - --logrus Displays Mattermost logs in `logrus format `_. Else, standard output is returned. - ----- - -mattermost permissions ----------------------- - -Description - Commands to manage advanced permissions. - -Child Commands - - `mattermost permissions export`_ - Export Schemes and Roles. - - `mattermost permissions import`_ - Import Schemes and Roles from a permissions export. - - `mattermost permissions reset`_ - Reset the permissions system to its default state on new installs. - -mattermost permissions export -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Description - Prints to stdout a jsonl representation of Schemes and Roles from a Mattermost instance. Used to export - Roles and Schemes from one Mattermost instance to another. The output is a jsonl representation with - each line containing a json representation of a Scheme and its associated Roles. The output is intended - to be used as the input of `mattermost permissions import`. - -Format - .. code-block:: none - - mattermost permissions export - -Example - .. code-block:: none - - bin/mattermost permissions export > my-permissions-export.jsonl - -mattermost permissions import -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Description - Creates Roles and Schemes on a Mattermost instance from a jsonl input file in the format outputted by - `mattermost permissions export`. - -Format - .. code-block:: none - - mattermost permissions import {file} - -Example - .. code-block:: none - - bin/mattermost permissions import my-permissions-export.jsonl - -mattermost permissions reset -~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Description - Reset permissions for all users, including Admins, to their default state on new installs. Note: **this will delete - all custom schemes**. - -Format - .. code-block:: none - - mattermost permissions reset - -Example - .. code-block:: none - - bin/mattermost permissions reset - -Options - .. code-block:: none - - --confirm Confirm you really want to reset the permissions system and a DB backup has been performed. - ----- - -mattermost plugin ------------------ - -Description - Commands to manage plugins. - -Child Commands - - `mattermost plugin add`_ - Add plugins to your Mattermost server. - - `mattermost plugin delete`_ - Delete previously uploaded plugins. - - `mattermost plugin disable`_ - Disable plugins. - - `mattermost plugin enable`_ - Enable plugins for use. - - `mattermost plugin list`_ - List plugins installed on your Mattermost server. - -mattermost plugin add -~~~~~~~~~~~~~~~~~~~~~ - -.. note:: - - From Mattermost v6.0, this command has been replaced with the mmctl command `mmctl plugin add `__. - -Description - Add plugins to your Mattermost server. If adding multiple plugins, use a space-separated list. - -Format - .. code-block:: none - - mattermost plugin add {plugin tar file} - -Example - .. code-block:: none - - bin/mattermost plugin add hovercardexample.tar.gz pluginexample.tar.gz - -mattermost plugin delete -~~~~~~~~~~~~~~~~~~~~~~~~ - -.. note:: - - From Mattermost v6.0, this command has been replaced with the mmctl command `mmctl plugin delete `__. - -Description - Delete previously uploaded plugins from your Mattermost server. If deleting multiple plugins, use a space-separated list. - -Format - .. code-block:: none - - mattermost plugin delete {plugin_id} - -Example - .. code-block:: none - - bin/mattermost plugin delete hovercardexample pluginexample - -mattermost plugin disable -~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. note:: - - From Mattermost v6.0, this command has been replaced with the mmctl command `mmctl plugin disable `__. - -Description - Disable plugins. Disabled plugins are immediately removed from the user interface and logged out of all sessions. If disabling multiple plugins, use a space-separated list. - -Format - .. code-block:: none - - mattermost plugin disable {plugin_id} - -Example - .. code-block:: none - - bin/mattermost plugin disable hovercardexample pluginexample - -mattermost plugin enable -~~~~~~~~~~~~~~~~~~~~~~~~ - -.. note:: - - From Mattermost v6.0, this command has been replaced with the mmctl command `mmctl plugin enable `__. - -Description - Enable plugins for use on your Mattermost server. If enabling multiple plugins, use a space-separated list. - -Format - .. code-block:: none - - mattermost plugin enable {plugin_id} - -Example - .. code-block:: none - - bin/mattermost plugin enable hovercardexample pluginexample - -mattermost plugin list -~~~~~~~~~~~~~~~~~~~~~~ - -.. note:: - - From Mattermost v6.0, this command has been replaced with the mmctl command `mmctl plugin list `__. - -Description - List all active and inactive plugins installed on your Mattermost server. - -Format - .. code-block:: none - - mattermost plugin list - -Example - .. code-block:: none - - bin/mattermost plugin list - ----- - -mattermost reset ----------------- - -Description - Completely erase the database causing the loss of all data. This resets Mattermost to its initial state. - -Format - .. code-block:: none - - mattermost reset - -Options - .. code-block:: none - - --confirm Confirm you really want to delete everything and a DB backup has been performed. - ----- - -mattermost roles ----------------- - -Description - Commands to manage user roles. - -Child Commands - - `mattermost roles member`_ - Remove System Admin privileges from a user - - `mattermost roles system_admin`_ - Make a user into a System Admin - -mattermost roles member -~~~~~~~~~~~~~~~~~~~~~~~ - -Description - Remove system admin privileges from a user. - -Format - .. code-block:: none - - mattermost roles member {users} - -Example - .. code-block:: none - - bin/mattermost roles member user1 - -mattermost roles system\_admin -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Description - Promote a user to a System Admin. - -Format - .. code-block:: none - - mattermost roles system_admin {users} - -Example - .. code-block:: none - - bin/mattermost roles system_admin user1 - ----- - -mattermost sampledata ---------------------- - -Description - Generate sample data and populate the Mattermost database. - - The command generates one user as the System Administrator with a username ``sysadmin`` and password ``Sys@dmin-sample1``. Other users are generated following an index, e.g. with username ``user-1`` and password ``SampleUs@r-1``. - -Format - .. code-block:: none - - mattermost sampledata - -Example - .. code-block:: none - - bin/mattermost sampledata --seed 10 --teams 4 --users 30 - -Options - .. code-block:: none - - -u, --users int The number of sample users. (default 15) - --profile-images string Optional. Path to folder with images to randomly pick as user profile image. - -t, --teams int The number of sample teams. (default 2) - --team-memberships int The number of sample team memberships per user. (default 2) - --channels-per-team int The number of sample channels per team. (default 10) - --channel-memberships int The number of sample channel memberships per user in a team. (default 5) - --posts-per-channel int The number of sample post per channel. (default 100) - --direct-channels int The number of sample direct message channels. (default 30) - --group-channels int The number of sample group message channels. (default 15) - --posts-per-direct-channel int The number of sample posts per direct message channel. (default 15) - --posts-per-group-channel int The number of sample post per group message channel. (default 30) - -s, --seed int Seed used for generating the random data (Different seeds generate different data). (default 1) - -b, --bulk string Optional. Path to write a JSONL bulk file instead of loading into the database. - -w, --workers int How many workers to run during the import. (default 2) - ----- - -mattermost server ------------------ - -Description - Runs the Mattermost server. - -Format - .. code-block:: none - - mattermost server - ----- - -mattermost team ---------------- - -Description - Commands to manage teams. - -Child Commands - - `mattermost team add`_ - Add users to a team. - - `mattermost team archive`_ - Archive teams based on name. - - `mattermost team create`_ - Create a team. - - `mattermost team delete`_ - Delete a team. - - `mattermost team list`_ - List all teams. - - `mattermost team modify`_ - Modify a team's public/private type. - - `mattermost team remove`_ - Remove users from a team. - - `mattermost team rename`_ - Rename a team. - - `mattermost team restore`_ - Restore a previously archived team. - - `mattermost team search`_ - Search for teams based on name. - -.. _team-value-note: - -.. note:: - **{team-name} value** - - For the *add*, *delete*, and *remove* commands, you can determine the *{team-name}* value from the URLs that you use to access your instance of Mattermost. For example, in the following URL the *{team-name}* value is *myteam*: ``https://example.com/myteam/channels/mychannel`` - - Also, the team and channel names in the URL should be written in lowercase. - -mattermost team add -~~~~~~~~~~~~~~~~~~~ - -.. note:: - - From Mattermost v6.0, this command has been replaced with the mmctl command `mmctl team add `__. - -Description - Add users to a team. Before running this command, see the :ref:`note about {team-name} `. - -Format - .. code-block:: none - - mattermost team add {team-name} {users} - -Example - .. code-block:: none - - bin/mattermost team add myteam user@example.com username - -mattermost team archive -~~~~~~~~~~~~~~~~~~~~~~~ - -.. note:: - - From Mattermost v6.0, this command has been replaced with the mmctl command `mmctl team archive `__. - - -Description - Archive teams based on name. Before running this command, see the :ref:`note about {team-name} `. - -Format - .. code-block:: none - - mattermost team archive {team} - -Examples - .. code-block:: none - - bin/mattermost team archive team1 - -mattermost team create -~~~~~~~~~~~~~~~~~~~~~~ - -.. note:: - - From Mattermost v6.0, this command has been replaced with the mmctl command `mmctl team create `__. - -Description - Create a team. - -Format - .. code-block:: none - - mattermost team create - -Examples - .. code-block:: none - - bin/mattermost team create --name mynewteam --display_name "My New Team" - bin/mattermost teams create --name private --display_name "My New Private Team" --private - -Options - .. code-block:: none - - --display_name string Team Display Name - --email string Administrator Email (anyone with this email is automatically a team admin) - --name string Team Name - --private Create a private team. - -mattermost team delete -~~~~~~~~~~~~~~~~~~~~~~ - -.. note:: - - From Mattermost v6.0, this command has been replaced with the mmctl command `mmctl team delete `__. - -Description - Permanently delete a team along with all related information, including posts from the database. Before running this command, see the :ref:`note about {team-name} `. - -Format - .. code-block:: none - - mattermost team delete {team-name} - -Example - .. code-block:: none - - bin/mattermost team delete myteam - -Options - .. code-block:: none - - --confirm Confirm you really want to delete the team and a DB backup has been performed. - -mattermost team list -~~~~~~~~~~~~~~~~~~~~ - -.. note:: - - From Mattermost v6.0, this command has been replaced with the mmctl command `mmctl team list `__. - -Description - List all teams on the server. - -Format - .. code-block:: none - - mattermost team list - -Example - .. code-block:: none - - bin/mattermost team list - -mattermost team modify -~~~~~~~~~~~~~~~~~~~~~~ - -Description - Modify a team's public/private type. - -Format - .. code-block:: none - - mattermost team modify [team] [flag] - -Example - .. code-block:: none - - bin/mattermost modify team myteam --private - bin/mattermost modify team myteam --public - -mattermost team remove -~~~~~~~~~~~~~~~~~~~~~~ - -.. note:: - - From Mattermost v6.0, this command has been replaced with the mmctl command `mmctl team remove `__. - -Description - Remove users from a team. Before running this command, see the :ref:`note about {team-name} `. - -Format - .. code-block:: none - - mattermost team remove {team-name} {users} - -Example - .. code-block:: none - - bin/mattermost team remove myteam user@example.com username - -mattermost team rename -~~~~~~~~~~~~~~~~~~~~~~~ - -.. note:: - - From Mattermost v6.0, this command has been replaced with the mmctl command `mmctl team rename `__. - -Description - Rename a team. - -Format - .. code-block:: none - - mattermost team rename {team} newteamname --display_name "New Display Name" - -Examples - .. code-block:: none - - bin/mattermost team rename myteam newteamname --display_name "New Display Name" - -Options - .. code-block:: none - - --display_name string Team Display Name - -mattermost team restore -~~~~~~~~~~~~~~~~~~~~~~~ - -Description - Restore a previously archived team. - -Format - .. code-block:: none - - mattermost team restore {team} - -Example - .. code-block:: none - - bin/mattermost team restore myteam - -mattermost team search -~~~~~~~~~~~~~~~~~~~~~~ - -.. note:: - - From Mattermost v6.0, this command has been replaced with the mmctl command `mmctl team search `__. - -Description - Search for teams based on name. Before running this command, see the :ref:`note about {team-name} `. - -Format - .. code-block:: none - - mattermost team search {team} - -Examples - .. code-block:: none - - bin/mattermost team search team1 - ----- - -mattermost user ---------------- - -Description - Commands to manage users. - -Child Commands - - - `mattermost user activate`_ - Activate a user - - `mattermost user convert`_ - Convert a user to a bot, or a bot to a user - - `mattermost user create`_ - Create a user - - `mattermost user deactivate`_ - Deactivate a user - - `mattermost user delete`_ - Delete a user and all posts - - `mattermost user deleteall`_ - Delete all users and all posts - - `mattermost user email`_ - Set a user's email - - `mattermost user invite`_ - Send a user an email invitation to a team - - `mattermost user migrate_auth`_ - Mass migrate all user accounts to a new authentication type - - `mattermost user password`_ - Set a user's password - - `mattermost user resetmfa`_ - Turn off MFA for a user - - `mattermost user search`_ - Search for users based on username, email, or user ID - - `mattermost user verify`_ - Verify email address of a new user - -~~~~~~~~~~~~~~~~~~~~~~~~ - -mattermost user activate -~~~~~~~~~~~~~~~~~~~~~~~~ - -.. note:: - - From Mattermost v6.0, this command has been replaced with the mmctl command `mmctl user activate `__. - -Description - Activate users that have been deactivated. If activating multiple users, use a space-separated list. - -Format - .. code-block:: none - - mattermost user activate {emails, usernames, userIds} - -Examples - .. code-block:: none - - bin/mattermost user activate user@example.com - bin/mattermost user activate username1 username2 - -mattermost user convert -~~~~~~~~~~~~~~~~~~~~~~~~ - -Description - Convert a user to a bot, or convert a bot to a user account. - -Format - .. code-block:: none - - mattermost user convert {emails, usernames, userIds} --bot - OR - mattermost user convert {bot_id} --user --email {email_address} --password {new_password} - -Examples - .. code-block:: none - - bin/mattermost user convert user@example.com --bot - bin/mattermost user convert username1 username2 --bot - bin/mattermost user convert old_bot --user --email real_user@example.com --password Password1 - - -Options - .. code-block:: none - - --bot string Convert user to bot. Supports converting multiple bots at once, use a space-separated list. - --user string Convert bot to user. Supports converting one account per command. The converted user will have the role of `system_user` set. - -mattermost user create -~~~~~~~~~~~~~~~~~~~~~~ - -.. note:: - - - From Mattermost v6.0, this command has been replaced with the mmctl command `mmctl user create `__. - - If you automate user creation through the CLI tool with SMTP enabled, emails will be sent to all new users created. If you run such a load script, it is best to disable SMTP or to use test accounts so that new account creation emails aren't unintentionally sent to people at your organization who aren't expecting them. - -Description - Create a user. - -Format - .. code-block:: none - - mattermost user create - -Examples - .. code-block:: none - - bin/mattermost user create --email user@example.com --username userexample --password Password1 - bin/mattermost user create --firstname Joe --system_admin --email joe@example.com --username joe --password Password1 - -Options - .. code-block:: none - - --email string Email - --firstname string First Name - --lastname string Last Name - --locale string Locale (ex: en, fr) - --nickname string Nickname - --password string Password - --system_admin Make the user a system administrator - --username string Username - -mattermost user deactivate -~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. note:: - - From Mattermost v6.0, this command has been replaced with the mmctl command `mmctl user deactivate `__. - -Description - Deactivate a user. Deactivated users are immediately logged out of all sessions and are unable to log back in. - -Format - .. code-block:: none - - mattermost user deactivate {emails, usernames, userIds} - -Examples - .. code-block:: none - - bin/mattermost user deactivate user@example.com - bin/mattermost user deactivate username - -.. note:: - Users deactivated via this CLI command can continue to use Mattermost, if they are already logged in, until the user cache is manually purged or automatically after 30 minutes. Users who are deactivated when they're not logged in will not be able to log in to Mattermost again. - - If you want to immediately terminate a deactivated user's session, purge all caches in **System Console > Web Server > Purge All Caches** after running this command. - - You can also use the `API command `_ to deactivate a user account and immediately terminate the session. - -mattermost user delete -~~~~~~~~~~~~~~~~~~~~~~ - -Description - Permanently delete a user and all related information, including posts from the database. - - Does not delete content from the file storage. You can manually delete all file uploads for a given user as uploads contain the ``CreatorId`` field. User profile pictures are stored in ``data/users//profile.png``. - -Format - .. code-block:: none - - mattermost user delete {users} - -Example - .. code-block:: none - - bin/mattermost user delete user@example.com - -Options - .. code-block:: none - - --confirm Confirm you really want to delete the user and a DB backup has been performed. - -mattermost user deleteall -~~~~~~~~~~~~~~~~~~~~~~~~~ - -Description - Permanently delete all users and all related information, including posts. - - Does not delete content from the file storage. You can manually delete all file uploads and user profile pictures. All uploads contain the ``CreatorId`` field and user profile pictures are stored in ``data/users//profile.png``. - -Format - .. code-block:: none - - mattermost user deleteall - -Example - .. code-block:: none - - bin/mattermost user deleteall - -Options - .. code-block:: none - - --confirm Confirm you really want to delete the user and a DB backup has been performed. - -mattermost user email -~~~~~~~~~~~~~~~~~~~~~ - -.. note:: - - From Mattermost v6.0, this command has been replaced with the mmctl command `mmctl user email `__. - -Description - Set a user's email. - -Format - .. code-block:: none - - mattermost user email {user} {new email} - -Example - .. code-block:: none - - bin/mattermost user email user@example.com newuser@example.com - -mattermost user invite -~~~~~~~~~~~~~~~~~~~~~~ - -.. note:: - - From Mattermost v6.0, this command has been replaced with the mmctl command `mmctl user invite `__. - -Description - Send a user an email invite to a team. You can invite a user to multiple teams by listing the team names or team IDs. - -Format - .. code-block:: none - - mattermost user invite {email} {teams} - -Examples - .. code-block:: none - - bin/mattermost user invite user@example.com myteam - bin/mattermost user invite user@example.com myteam1 myteam2 - -mattermost user migrate_auth -~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. _cli-user-migrate-auth: - -Description - Migrates all existing Mattermost user accounts from one authentication provider to another. For example, you can upgrade your authentication provider from email to AD/LDAP, or from AD/LDAP to SAML. Output will display any accounts that are not migrated successfully. These accounts might be blocked because of filters in your AD/LDAP configuration in the System Console. - -**Migrate to AD/LDAP** - -Parameters - - ``from_auth``: The authentication service from which to migrate user accounts. Supported options: ``email``, ``gitlab``, ``saml``. - - - ``to_auth``: The authentication service to which to migrate user accounts. Supported options: ``ldap``. - - - ``match_field``: The field that is guaranteed to be the same in both authentication services. For example, if the user emails are consistent set to email. Supported options: ``email``, ``username``. - -Format - .. code-block:: none - - mattermost user migrate_auth {from_auth} ldap {match_field} - -Example - .. code-block:: none - - bin/mattermost user migrate_auth email ldap email - -Options - .. code-block:: none - - --force Ignore duplicate entries on the AD/LDAP server. - --dryRun Run a simulation of the migration process without changing the database. - -**Migrate to SAML** - -Parameters - - - ``from_auth``: The authentication service from which to migrate user accounts. Supported options: ``email``, ``gitlab``. ``ldap``. - - - ``to_auth``: The authentication service to which to migrate user accounts. Supported options: ``saml``. - - - ``users_file``: The path of a JSON file with the usernames and emails of all users to migrate to SAML. The username and email must be the same as in your SAML service provider. Moreover, the email must match the email address of the Mattermost user account. An example of the users file is below: - -.. code-block:: json - - { - "user1@email.com": "username.one", - "user2@email.com": "username.two" - } - -Users file generation - Generating the ``users_file`` depends on how the system is configured and which SAML service provider is used. Below are two sample scripts for OneLogin and Okta service providers. For ADFS, you can use the AD/LDAP protocol to directly extract the users information and export it to a JSON file. - - After generating the ``users_file``, you can manually update the file to obtain a list of Mattermost user accounts you want to migrate to SAML. Note that users listed in ``users_file`` that do not yet exist in Mattermost are ignored during the migration process. - -OneLogin: - - .. code-block:: python - - from onelogin.api.client import OneLoginClient - import json - - client_id = input("Client id: ") - client_secret = input("Secret: ") - region = input("Region (us, eu): ") - - client = OneLoginClient(client_id, client_secret, region) - - mapping = {} - for user in client.get_users(): - mapping[user.email] = user.username - - with file("saml_users.json", "w") as fd: - json.dump(mapping, fd) - -Okta: - - .. code-block:: python - - from okta import UsersClient - import json - - base_url = input("Base url (example: https://example.okta.com): ") - api_token = input("API Token: ") - - sersClient = UsersClient(base_url, api_token) - - users = usersClient.get_paged_users(limit=25) - - mapping = {} - - for user in users.result: - mapping[user.profile.email] = user.profile.login - - while not users.is_last_page(): - users = usersClient.get_paged_users(url=users.next_url) - for user in users.result: - mapping[user.profile.email] = user.profile.login - - with file("saml_users.json", "w") as fd: - json.dump(mapping, fd) - -ADFS: - - .. code-block:: python - - import ldap - import json - import getpass - - ldap_host = input('Ldap Host (example ldap://localhost:389): ') - base_dn = input('Base DN (example dc=mm,dc=test,dc=com): ') - bind_dn = input('Bind DN (example ORGANIZATION\username): ') - password = getpass.getpass('Password: ') - user_object_class = input('User object class (example organizationalPerson): ') - username_field = input('Username field (example sAMAccountName): ') - mail_field = input('Mail field (example mail): ') - - l = ldap.initialize(ldap_host) - l.simple_bind_s(bind_dn, password) - page_control = ldap.controls.libldap.SimplePagedResultsControl(True, size=1000, cookie='') - r = l.search_ext(base_dn, ldap.SCOPE_SUBTREE, '(objectClass='+user_object_class+')', [username_field, mail_field], serverctrls=[page_control]) - - mapping = {} - while True: - rtype, rdata, rmsgid, serverctrls = l.result3(r) - - for dn, entry in rdata: - if mail_field in entry and len(entry[mail_field]) >= 1 and username_field in entry and len(entry[username_field]) >= 1: - mapping[entry[mail_field][0].decode('utf-8')] = entry[username_field][0].decode('utf-8') - - controls = [control for control in serverctrls if control.controlType == ldap.controls.libldap.SimplePagedResultsControl.controlType] - if not controls: - print('The server ignores RFC 2696 control') - break - if not controls[0].cookie: - break - page_control.cookie = controls[0].cookie - r = l.search_ext(base_dn, ldap.SCOPE_SUBTREE, '(objectClass='+user_object_class+')', [username_field, mail_field], serverctrls=[page_control]) - - with open("saml_users.json", "w") as fd: - json.dump(mapping, fd) - -Format - .. code-block:: none - - mattermost user migrate_auth {from_auth} saml {users_file} - -Example - .. code-block:: none - - bin/mattermost user migrate_auth email saml users.json - -Options - .. code-block:: none - - --auto Automatically migrate all users without a {users_file}. Assumes the usernames and emails are identical between Mattermost and SAML services. - --dryRun Run a simulation of the migration process without changing the database. Useful to test if the migration results in any errors. You can use this option with or without a {users_file}. - -mattermost user password -~~~~~~~~~~~~~~~~~~~~~~~~ - -.. note:: - - From Mattermost v6.0, this command has been replaced with the mmctl command `mmctl user reset_password `__. - - -Description - Set a user's password. - -Format - .. code-block:: none - - mattermost user password {user} {password} - -Example - .. code-block:: none - - bin/mattermost user password user@example.com Password1 - -mattermost user resetmfa -~~~~~~~~~~~~~~~~~~~~~~~~ - -.. note:: - - From Mattermost v6.0, this command has been replaced with the mmctl command `mmctl user resetmfa `__. - -Description - Turns off multi-factor authentication for a user. If MFA enforcement is enabled, the user will be forced to re-enable MFA with a new device as soon as they log in. - -Format - .. code-block:: none - - mattermost user resetmfa {users} - -Example - .. code-block:: none - - bin/mattermost user resetmfa user@example.com - -mattermost user search -~~~~~~~~~~~~~~~~~~~~~~ - -.. note:: - - From Mattermost v6.0, this command has been replaced with the mmctl command `mmctl user search `__. - -Description - Search for users based on username, email, or user ID. - -Format - .. code-block:: none - - mattermost user search {users} - -Example - .. code-block:: none - - bin/mattermost user search user1@example.com user2@example.com - -mattermost user verify -~~~~~~~~~~~~~~~~~~~~~~ - -Description - Verify the email address of a new user. - -Format - .. code-block:: none - - mattermost user verify {users} - -Example - .. code-block:: none - - bin/mattermost user verify user1 - ----- - -mattermost version ------------------- - -.. note:: - - From Mattermost v6.5, this CLI command no longer interacts with the database. The `mattermost db migrate `__ CLI command has been introduced to trigger schema migrations. - -Desription - Displays Mattermost version information. - -Format - .. code-block:: none - - mattermost version - ----- - -mattermost webhook ------------------- - -Description - Commands to manage webhooks. - -Child Commands - - `mattermost webhook create-incoming`_ - Create an incoming webhook within specific channel. - - `mattermost webhook create-outgoing`_ - Create an outgoing webhook within specific channel. - - `mattermost webhook delete`_ - Delete incoming and outgoing webhooks. - - `mattermost webhook list`_ - List all webhooks. - - `mattermost webhook modify-incoming`_ - Modify an existing incoming webhook by changing its title, description, channel, or icon URL. - - `mattermost webhook modify-outgoing`_ - Modify an existing outgoing webhook by changing its title, description, channel, icon, URL, content-type, and triggers. - - `mattermost webhook move-outgoing`_ - Move an existing outgoing webhook with an ID. - - `mattermost webhook show`_ - Show information about a webhook by providing the webhook ID. - -mattermost webhook create-incoming -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Description - Create an incoming webhook within specific channel. - -Format - .. code-block:: none - - mattermost webhook create-incoming - -Examples - .. code-block:: none - - bin/mattermost webhook create-incoming --channel [channelID] --user [userID] --display-name [display-name] --description [webhookDescription] --lock-to-channel --icon [iconURL] - -Options - .. code-block:: none - - --channel string Channel ID - --user string User ID - --display-name string Incoming webhook display name - --description string Incoming webhook description - --lock-to-channel boolean (True/False) Lock incoming webhook to channel - --icon [iconURL] Icon URL - -mattermost webhook create-outgoing -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Description - Create an outgoing webhook which allows external posting of messages from a specific channel. - -Format - .. code-block:: none - - mattermost webhook create-outgoing - -Examples - .. code-block:: none - - bin/mattermost webhook create-outgoing --team myteam --channel mychannel --user myusername --display-name mywebhook --description "My cool webhook" --trigger-when start --trigger-word "build" --icon http://localhost:8000/my-slash-handler-bot-icon.png --url http://localhost:8000/my-webhook-handler --content-type "application/json" - - bin/mattermost webhook create-outgoing --team myotherteam --channel mychannel --user myusername --display-name myotherwebhook --description "My cool webhook" --trigger-when exact --trigger-word "build" --trigger-word "test" --trigger-word "third-trigger" --icon http://localhost:8000/my-slash-handler-bot-icon.png --url http://localhost:8000/my-webhook-handler --url http://example.com --content-type "application/json" - -Options - .. code-block:: none - - --team string [REQUIRED] Team name or ID - --channel string Channel name or ID - --user string [REQUIRED] User username, email, or ID - --display-name string [REQUIRED] Outgoing webhook display name - --description string Outgoing webhook description - --trigger-words stringArray [REQUIRED] Words to trigger webhook - --trigger-when string [REQUIRED] When to trigger webhook (exact: for first word matches a trigger word exactly, start: for first word starts with a trigger word) (default "exact") - --icon [iconURL] Icon URL - --url stringArray [REQUIRED] Callback URLs - --content-type string Content-type - --h, --help Help for create-outgoing - -mattermost webhook delete -~~~~~~~~~~~~~~~~~~~~~~~~~ - -Description - Delete incoming and outgoing webhooks. If deleting multiple webhooks, use a space-separated list. - -Format - .. code-block:: none - - mattermost webhook delete [webhookID] - -Examples - .. code-block:: none - - bin/mattermost webhook delete ggwpz8c1oj883euk98wfm9n1cr - -mattermost webhook list -~~~~~~~~~~~~~~~~~~~~~~~ - -Description - List all webhooks. - -Format - .. code-block:: none - - mattermost webhook list {team} - -Examples - .. code-block:: none - - bin/mattermost webhook list team1 - bin/mattermost webhook list - -Options - .. code-block:: none - - --team string Specific team results to return. If not specified, all teams will be included. - -mattermost webhook modify-incoming -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Description - Modify an existing incoming webhook by changing its title, description, channel or icon url. - -Format - .. code-block:: none - - mattermost webhook modify-incoming {webhookId} - -Examples - .. code-block:: none - - bin/mattermost webhook modify-incoming [webhookID] --channel [channelID] --display-name [displayName] --description [webhookDescription] --lock-to-channel --icon [iconURL] - -Options - .. code-block:: none - - --channel string Channel ID - --display-name string Incoming webhook display name - --description string Incoming webhook description - --lock-to-channel boolean (True/False) Lock incoming webhook to channel - --icon [iconURL] Icon URL - -mattermost webhook modify-outgoing -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Description - Modify an existing outgoing webhook by changing its title, description, channel, trigger words, icon url, callback url, or content type. - -Format - .. code-block:: none - - mattermost webhook modify-outgoing {webhookId} - -Examples - .. code-block:: none - - bin/mattermost webhook modify-outgoing [webhookId] --channel [channelId] --display-name [displayName] --description "New webhook description" --icon http://localhost:8000/my-slash-handler-bot-icon.png --url http://localhost:8000/my-webhook-handler --content-type "application/json" --trigger-word test --trigger-when start` - -Options - .. code-block:: none - - --channel string Channel ID - --display-name string Incoming webhook display name - --description string Incoming webhook description - --trigger-word string array Word(s) to trigger webhook - --trigger-when string When to trigger webhook (exact: for first word matches a trigger word exactly, start: for first word starts with a trigger word)") - --icon [iconURL] Icon URL - --url [callbackURL] Callback URL - --content-type string Content type - -mattermost webhook move-outgoing -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Description - Move an existing outgoing webhook to another team by specifying its id. If the outgoing webhook is triggered by a keyword then assigning a channel is optional. If the outgoing webhook is associated to a specific channel prior to moving, a channel must be specified within the new team. - -Format - .. code-block:: none - - mattermost webhook move-outgoing {webhookId} - -Examples - .. code-block:: none - - bin/mattermost webhook move-outgoing newteam oldteam:[webhookId] --channel [channelId or channelName] - -Options - .. code-block:: none - - --channel string Channel ID or Channel Name - -mattermost webhook show -~~~~~~~~~~~~~~~~~~~~~~~ - -Description - Show information about a webhook by providing the webhook ID. Returns display name, channel ID and team ID for both incoming and outgoing webhooks. Additionally returns callback URL, username, and icon URL for outgoing webhooks. - -Format - .. code-block:: none - - mattermost webhook show {webhookId} - -Examples - .. code-block:: none - - bin/mattermost webhook show [webhookId] - -CLI Documentation: - -:: - - Mattermost commands to help configure the system - - NAME: - platform -- platform configuration tool - - USAGE: - platform [options] - - FLAGS: - -config="config.json" Path to the config file - - -username="someuser" Username used in other commands - - -license="ex.mattermost-license" Path to your license file - - -email="user@example.com" Email address used in other commands - - -password="mypassword" Password used in other commands - - -team_name="name" The team name used in other commands - - -channel_name="name" The channel name used in other commands - - -channel_header="string" The channel header used in other commands - - -channel_purpose="string" The channel purpose used in other commands - - -channel_type="type" The channel type used in other commands - valid values are - "O" - public channel - "P" - private channel - - -role="system_admin" The role used in other commands - valid values are - "" - The empty role is basic user - permissions - "system_admin" - Represents a system - admin who has access to all teams - and configuration settings. - COMMANDS: - -create_team Creates a team. It requires the -team_name - and -email flag to create a team. - Example: - platform -create_team -team_name="name" -email="user@example.com" - - -create_user Creates a user. It requires the -email and -password flag, - and -team_name and -username are optional to create a user. - Example: - platform -create_user -team_name="name" -email="user@example.com" -password="mypassword" -username="user" - - -invite_user Invites a user to a team by email. It requires the -team_name - and -email flags. - Example: - platform -invite_user -team_name="name" -email="user@example.com" - - -join_team Joins a user to the team. It requires the -email and - -team_name flags. You may need to logout of your current session - for the new team to be applied. - Example: - platform -join_team -email="user@example.com" -team_name="name" - - -assign_role Assigns role to a user. It requires the -role and - -email flag. You may need to log out - of your current sessions for the new role to be - applied. - Example: - platform -assign_role -email="user@example.com" -role="system_admin" - - -create_channel Create a new channel in the specified team. It requires the -email, - -team_name, -channel_name, -channel_type flags. Optional you can set - the -channel_header and -channel_purpose. - Example: - platform -create_channel -email="user@example.com" -team_name="name" -channel_name="channel_name" -channel_type="O" - - -join_channel Joins a user to the channel. It requires the -email, -channel_name and - -team_name flags. You may need to logout of your current session - for the new channel to be applied. Requires an enterprise license. - Example: - platform -join_channel -email="user@example.com" -team_name="name" -channel_name="channel_name" - - -leave_channel Removes a user from the channel. It requires the -email, -channel_name and - -team_name flags. You may need to logout of your current session - for the channel to be removed. Requires an enterprise license. - Example: - platform -leave_channel -email="user@example.com" -team_name="name" -channel_name="channel_name" - - -list_channels Lists all channels for a given team. - It will append ' (archived)' to the channel name if archived. It requires the - -team_name flag. Requires an enterprise license. - Example: - platform -list_channels -team_name="name" - - -restore_channel Restores a previously deleted channel. - It requires the -channel_name flag and - -team_name flag. Requires an enterprise license. - Example: - platform -restore_channel -team_name="name" -channel_name="channel_name" - - -reset_password Resets the password for a user. It requires the - -email and -password flag. - Example: - platform -reset_password -email="user@example.com" -password="newpassword" - - -reset_mfa Turns off multi-factor authentication for a user. It requires the - -email or -username flag. - Example: - platform -reset_mfa -username="someuser" - - -reset_database Completely erases the database causing the loss of all data. This - will reset Mattermost to it's initial state. (note this will not - erase your configuration.) - - Example: - platform -reset_database - - -permanent_delete_user Permanently deletes a user and all related information - including posts from the database. It requires the - -email flag. You may need to restart the - server to invalidate the cache - Example: - platform -permanent_delete_user -email="user@example.com" - - -permanent_delete_all_users Permanently deletes all users and all related information - including posts from the database. It requires the - -team_name, and -email flag. You may need to restart the - server to invalidate the cache - Example: - platform -permanent_delete_all_users -team_name="name" -email="user@example.com" - - -permanent_delete_team Permanently deletes a team along with - all related information including posts from the database. - It requires the -team_name flag. You may need to restart - the server to invalidate the cache. - Example: - platform -permanent_delete_team -team_name="name" - - -upload_license Uploads a license to the server. Requires the -license flag. - - Example: - platform -upload_license -license="/path/to/license/example.mattermost-license" - - -migrate_accounts Migrates accounts from one authentication provider to another. - Requires -from_auth -to_auth and -match_field flags. Supported - options for -from_auth: email, gitlab, saml. Supported options - for -to_auth: ldap. Supported options for -match_field: email, - username. Output will display any accounts that are not migrated - successfully. - - Example: - platform -migrate_accounts -from_auth email -to_auth ldap -match_field username - - -upgrade_db_30 Upgrades the database from a version 2.x schema to version 3 see - https://docs.mattermost.com/upgrade/upgrading-mattermost-server.html - - Example: - platform -upgrade_db_30 - - -version Display the current of the Mattermost platform - - -help Displays this help page - - Troubleshooting ---------------- @@ -2816,4 +467,4 @@ If you have Bleve search indexing enabled, temporarily disable it in **System Co Bleve does not support multiple processes opening and manipulating the same index. Therefore, if the Mattermost server is running, an attempt to run the CLI will lock when trying to open the indeces. -If you are not using the Bleve search indexing, feel free to post in our `Troubleshooting forum `__ to get help. +If you aren't using the Bleve search indexing, feel free to post in our `Troubleshooting forum `__ to get help. diff --git a/source/manage/mmctl-command-line-tool.rst b/source/manage/mmctl-command-line-tool.rst index 52d3fd7503e..6d29edc25a4 100644 --- a/source/manage/mmctl-command-line-tool.rst +++ b/source/manage/mmctl-command-line-tool.rst @@ -18,7 +18,7 @@ mmctl usage notes - We recommend you add the path to the Mattermost ``bin`` folder into your ``$PATH`` environment variable. This ensures that you can run mmctl commands locally regardless of your current directory location. - If the ``bin`` directory is not added to the ``$PATH`` environment variable, each time you use mmctl you must be in the ``bin`` directory to run mmctl commands, and the commands must be prefixed with ``./``. If you're working from a different directory, make sure you specify the full path to mmctl when running mmctl commands. -- Parameters in CLI commands are order-specific. +- Parameters in mmctl commands are order-specific. - You can use the ``--local`` flag with mmctl commands to run them without authentication by allowing communicating with the server through a Unix socket. See the `local mode `__ documentation for activation and usage details. - If special characters (``!``, ``|``, ``(``, ``)``, ``\``, ``'``, and ``"``) are used, the entire argument needs to be surrounded by single quotes (e.g. ``-password 'mypassword!'``, or the individual characters need to be escaped out (e.g. ``password mypassword\!``). - Team name and channel name refer to the handles, not the display names. So in the URL ``https://community.mattermost.com/core/channels/town-square`` team name would be ``core`` and channel name would be ``town-square``. diff --git a/source/manage/telemetry.rst b/source/manage/telemetry.rst index af6faf1b075..db5937cb277 100644 --- a/source/manage/telemetry.rst +++ b/source/manage/telemetry.rst @@ -97,7 +97,7 @@ Server Configuration Settings **True/false (boolean)** value whether setting remains default (true) or non-default (false). **NOTE: No input data is used**: - **ServiceSettings**: bool SiteURL, bool WebsocketURL, bool TLSCertFile, bool TLSKeyFile, bool ReadTimeout, bool WriteTimeout,bool IdleTimeout, bool GoogleDeveloperKey, bool AllowCorsFrom, bool CorsExposedHeaders, bool AllowedUntrustedInternalConnections, bool GfycatApiKey, bool GfycatApiSecret, bool ManagedResourcePaths, bool CollapsedThreads, bool PostPriority, bool AllowPersistentNotifications, bool PersistentNotificationMaxCount, bool PersistentNotificationIntervalMinutes, bool PersistentNotificationMaxRecipients; **TeamSettings**: bool SiteName, bool CustomBrandText, bool CustomDescriptionText, bool UserStatusAwayTimeout, bool ExperimentalPrimaryTeam; **DisplaySettings**: bool CustomUrlSchemes; **GuestAccountSettings**: bool RestrictCreationToDomains; **LogSettings**: bool FileLocation; **NotificationLogSettings**: bool FileLocation; **EmailSettings**: bool FeedbackName, bool FeedbackEmail, bool FeedbackOrganization, bool LoginButtonColor, bool LoginButtonBorderColor, bool LoginButtonTextColor, bool ImageProxyType, bool ImageProxyURL, bool ImageProxyOptions; **RateLimitSettings**: bool VaryByHeader; **SupportSettings**: bool TermsOfServiceLink, bool PrivacyPolicyLink, bool AboutLink, bool HelpLink, bool ReportAProblemLink, bool AppCustomURLSchemes, bool SupportEmail; **ThemeSettings**: bool DefaultTheme; **TimeZoneSettings**: bool SupportedTimezonesPath; **LdapSettings**: bool FirstNameAttribute, bool LastNameAttribute, bool EmailAttribute, bool UserNameAttribute, bool NicknameAttribute, bool IdAttribute, bool PositionAttribute, bool LoginFieldName, bool LoginButtonColor, bool LoginButtonBorderColor, bool LoginButtonTextColor, bool GroupFilter, bool GroupDisplayNameAttribute, bool GroupIdAttribute, bool GuestFilter, bool AdminFilter; **SamlSettings**: bool SignatureAlgorithm, bool CanonicalAlgorithm, bool ScopingIDPProviderId, bool ScopingIDPName, bool IdAttribute, bool GuestAttribute, bool FirstNameAttribute, bool LastNameAttribute, bool EmailAttribute, bool UserNameAttribute, bool NicknameAttribute, bool LocaleAttribute, bool PositionAttribute, bool LoginIdAttribute, bool LoginButtonText, bool LoginButtonColor, bool LoginButtonBorderColor, bool LoginButtonTextColor, bool AdminFilter; **NativeAppSettings**: bool AppDownloadLink, bool AndroidAppDownloadLink, bool IosAppDownloadLink; **WebrtcSettings** (only in v5.5 and earlier): bool StunURI, bool TurnURI; **ClusterSettings**: bool NetworkInterface, bool BindAddress, bool AdvertiseAddress; **MetricsSettings**: bool BlockProfileRate; **AnalyticsSettings**: bool MaxUsersForStatistics; **ExperimentalSettings** bool ClientSideCertCheck; **AnnouncementSettings**: bool BannerColor, bool BannerTextColor; **ElasticsearchSettings**: bool ConnectionUrl, bool Username, bool Password, bool IndexPrefix; **PluginSettings**: bool MarketplaceUrl, bool SignaturePublicKeyFiles, bool ChimeraOAuthProxyUrl; **MessageExportSettings**: bool GlobalRelaySettings.SmtpUsername, bool GlobalRelaySettings.SmtpPassword, bool GlobalRelaySettings.EmailAddress + **ServiceSettings**: bool SiteURL, bool WebsocketURL, bool TLSCertFile, bool TLSKeyFile, bool ReadTimeout, bool WriteTimeout,bool IdleTimeout, bool GoogleDeveloperKey, bool AllowCorsFrom, bool CorsExposedHeaders, bool AllowedUntrustedInternalConnections, bool GfycatApiKey, bool GfycatApiSecret, bool ManagedResourcePaths, bool CollapsedThreads, bool PostPriority, bool AllowPersistentNotifications, bool PersistentNotificationMaxCount, bool PersistentNotificationIntervalMinutes, bool PersistentNotificationMaxRecipients; **TeamSettings**: bool SiteName, bool CustomBrandText, bool CustomDescriptionText, bool UserStatusAwayTimeout, bool ExperimentalPrimaryTeam; **DisplaySettings**: bool CustomUrlSchemes; **GuestAccountSettings**: bool RestrictCreationToDomains, bool EnforceMultifactorAuthentication, bool HideTags; **LogSettings**: bool FileLocation; **NotificationLogSettings**: bool FileLocation; **EmailSettings**: bool FeedbackName, bool FeedbackEmail, bool FeedbackOrganization, bool LoginButtonColor, bool LoginButtonBorderColor, bool LoginButtonTextColor, bool ImageProxyType, bool ImageProxyURL, bool ImageProxyOptions; **RateLimitSettings**: bool VaryByHeader; **SupportSettings**: bool TermsOfServiceLink, bool PrivacyPolicyLink, bool AboutLink, bool HelpLink, bool ReportAProblemLink, bool AppCustomURLSchemes, bool SupportEmail; **ThemeSettings**: bool DefaultTheme; **TimeZoneSettings**: bool SupportedTimezonesPath; **LdapSettings**: bool FirstNameAttribute, bool LastNameAttribute, bool EmailAttribute, bool UserNameAttribute, bool NicknameAttribute, bool IdAttribute, bool PositionAttribute, bool LoginFieldName, bool LoginButtonColor, bool LoginButtonBorderColor, bool LoginButtonTextColor, bool GroupFilter, bool GroupDisplayNameAttribute, bool GroupIdAttribute, bool GuestFilter, bool AdminFilter; **SamlSettings**: bool SignatureAlgorithm, bool CanonicalAlgorithm, bool ScopingIDPProviderId, bool ScopingIDPName, bool IdAttribute, bool GuestAttribute, bool FirstNameAttribute, bool LastNameAttribute, bool EmailAttribute, bool UserNameAttribute, bool NicknameAttribute, bool LocaleAttribute, bool PositionAttribute, bool LoginIdAttribute, bool LoginButtonText, bool LoginButtonColor, bool LoginButtonBorderColor, bool LoginButtonTextColor, bool AdminFilter; **NativeAppSettings**: bool AppDownloadLink, bool AndroidAppDownloadLink, bool IosAppDownloadLink; **WebrtcSettings** (only in v5.5 and earlier): bool StunURI, bool TurnURI; **ClusterSettings**: bool NetworkInterface, bool BindAddress, bool AdvertiseAddress; **MetricsSettings**: bool BlockProfileRate; **AnalyticsSettings**: bool MaxUsersForStatistics; **ExperimentalSettings** bool ClientSideCertCheck; **AnnouncementSettings**: bool BannerColor, bool BannerTextColor; **ElasticsearchSettings**: bool ConnectionUrl, bool Username, bool Password, bool IndexPrefix; **PluginSettings**: bool MarketplaceUrl, bool SignaturePublicKeyFiles, bool ChimeraOAuthProxyUrl; **MessageExportSettings**: bool GlobalRelaySettings.SmtpUsername, bool GlobalRelaySettings.SmtpPassword, bool GlobalRelaySettings.EmailAddress Commercial License Information (Enterprise Edition only) Information about commercial license key purchased or trial license key used for Enterprise Edition servers: Company ID, license ID, license issue date, license start date, license expiry date, number of licensed users, license name, list of unlocked subscription features. diff --git a/source/onboard/ad-ldap-groups-synchronization.rst b/source/onboard/ad-ldap-groups-synchronization.rst index 698e8769a86..0eae61d66bc 100644 --- a/source/onboard/ad-ldap-groups-synchronization.rst +++ b/source/onboard/ad-ldap-groups-synchronization.rst @@ -208,11 +208,11 @@ To manage membership of a private team with synchronized groups: 4. Review the notice in the footer of the screen for any users that are not part of groups who will be removed from the team on the next synchronization. 5. Select **Save**. Members will be updated on the next scheduled AD/LDAP synchronization. -Alternatively, you can use the CLI or mmctl tools to set the team to be managed by groups: +Alternatively, you can use the mmctl tools to set the team to be managed by groups: -1. Ensure there is at least one group already associated to the team. You can view and add default teams to a group via **System Console > User Management > Groups > Group Configuration**. Please see more information on adding default teams and channels `here `__. Additionally, you can use the CLI or mmctl tools to confirm if there is already a group associated to the team by running the `group team list CLI command `__ or by running the `mmctl group team list command `__. +1. Ensure there is at least one group already associated to the team. You can view and add default teams to a group via **System Console > User Management > Groups > Group Configuration**. Please see more information on adding default teams and channels `here `__. Additionally, you can use the mmctl to confirm if there is already a group associated to the team by running the `mmctl group team list `__ command. 2. Ensure **Team Settings > General > Allow any user with an account on this server to join this team** is set to **No**. -3. Convert the team to have its membership managed by synchronized groups by running the `group team enable CLI or command `__, or by running the `mmctl group team enable command `__. +3. Convert the team to have its membership managed by synchronized groups by running the `mmctl group team enable `__command. To manage membership of a private channel with synchronized groups: @@ -222,10 +222,10 @@ To manage membership of a private channel with synchronized groups: 4. Review the notice in the footer of the screen for any users that are not part of groups who will be removed from the channel on the next synchronization. 5. Select **Save**. -Members will be updated on the next scheduled AD/LDAP synchronization. Alternatively, you can use the CLI or mmctl tools to set a private channel to be managed by groups: +Members will be updated on the next scheduled AD/LDAP synchronization. Alternatively, you can use the mmctl to set a private channel to be managed by groups: -1. Ensure there is at least one group already associated to the channel. You can view and add default channels to a group via **System Console > User Management > Groups > Group Configuration**. Please see more information on adding default teams and channels `here `_. Additionally, you can use the CLI or mmctl tools to view if there is already a group associated to the channel by running the `group channel list CLI command `__, or by running the `mmctl group channel list command `__. -2. Convert the team to have its membership managed by synchronized groups by running the `group channel enable CLI command `__, or by running the `mmctl group channel enable command `__. +1. Ensure there is at least one group already associated to the channel. You can view and add default channels to a group via **System Console > User Management > Groups > Group Configuration**. Please see more information on adding default teams and channels `here `_. Additionally, you can use the mmctl to view if there is already a group associated to the channel by running the `mmctl group channel list `__ command. +2. Convert the team to have its membership managed by synchronized groups by running the `mmctl group channel enable `__ command. Assign roles to group members ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -299,9 +299,9 @@ If the user is removed from a synchronized group and later re-added to the group Disable group-synchronized management of teams and private channels ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -To remove the management of members by synchronized groups in a team, disable **Sync Group Members** under **System Console > User Management > Teams > Team Management**. Alternatively, you can also run the `group team disable CLI command `__, or run the `mmctl group team disable command `__. +To remove the management of members by synchronized groups in a team, disable **Sync Group Members** under **System Console > User Management > Teams > Team Management**. Alternatively, you can also run the `mmctl group team disable `__ command. -To remove the management of members by synchronized groups in a channel, disable **Sync Group Members** under **System Console > User Management > Channels > Channel Management**. Alternatively, you can also run the `group channel disable CLI command `__, or run the `mmctl group channel disable command `__. +To remove the management of members by synchronized groups in a channel, disable **Sync Group Members** under **System Console > User Management > Channels > Channel Management**. Alternatively, you can also run the `mmctl group channel disable `__ command. Frequently asked questions -------------------------- diff --git a/source/onboard/advanced-permissions.rst b/source/onboard/advanced-permissions.rst index 9af12c4657c..845e476e6ac 100644 --- a/source/onboard/advanced-permissions.rst +++ b/source/onboard/advanced-permissions.rst @@ -210,11 +210,11 @@ Example: As the default for the entire system, only allow system admins to creat Administration tools -------------------- -There are a number of CLI and mmctl tools available for admins to help in configuring and troubleshooting the permissions system: +There are a number of API and mmctl tools available for admins to help in configuring and troubleshooting the permissions system: -1. Reset all permissions to the default on new installations using the `CLI `__, or using the `mmctl `__. -2. `Export permission schemes `__: Exports the System Scheme and any Team Override Schemes to a ``jsonl`` file. -3. `Import permission schemes `__: Imports the System Scheme and any Team Override Schemes to your Mattermost instance from a ``jsonl`` input file in the format outputted by ``mattermost permissions export``. +1. Reset all permissions to the default on new installations using the `mmctl permissions reset `__ command. +2. Use the `GetAllRoles `__ API endpoint to get a list of all roles. +3. Add permissions to a role using the `mmctl permissions add `__ command. Backend infrastructure ---------------------- diff --git a/source/onboard/bulk-loading-about.rst b/source/onboard/bulk-loading-about.rst index 297fd133b06..837c15f4577 100644 --- a/source/onboard/bulk-loading-about.rst +++ b/source/onboard/bulk-loading-about.rst @@ -17,4 +17,4 @@ The bulk loading command is not a synchronization tool You cannot use the bulk loading command to remove any objects or their fields from the Mattermost database. The command only creates or overwrites fields. .. important:: - The bulk loading command runs in the CLI and operates in the security context of the CLI. This means it has full permissions to access and alter everything in the Mattermost database. + The bulk loading command runs in the mmctl and operates in the security context of the mmctl. This means it has full permissions to access and alter everything in the Mattermost database. diff --git a/source/onboard/guest-account-access.rst b/source/onboard/guest-account-access.rst new file mode 100644 index 00000000000..93be9a66a22 --- /dev/null +++ b/source/onboard/guest-account-access.rst @@ -0,0 +1,18 @@ +:orphan: +:nosearch: + +Guests can: + +- Pin messages to channels +- Use slash commands (excluding restricted commands such as invite members, rename channels, change headers, etc) +- Favorite channels +- Mute channels +- Update their profile +- Use different authentication methods than other users + +Guests cannot: + +- Discover public channels +- Join open teams +- Create direct messages or group messages with members who aren’t within the same channel +- Invite people \ No newline at end of file diff --git a/source/onboard/guest-accounts.rst b/source/onboard/guest-accounts.rst index 3f5fdc9b402..667f341b562 100644 --- a/source/onboard/guest-accounts.rst +++ b/source/onboard/guest-accounts.rst @@ -10,23 +10,10 @@ Guest accounts Guest accounts are a way to collaborate with individuals, such as vendors and contractors, outside of your organization by controlling their access to channels and team members. For example, guest accounts can be used to collaborate with customers on a support issue or work on a website project with resources from an external design firm. -Guests can: - -- Pin messages to channels -- Use slash commands (excluding restricted commands such as invite members, rename channels, change headers, etc) -- Favorite channels -- Mute channels -- Update their profile -- Use different authentication methods than other users - -Guests cannot: - -- Discover public channels -- Join open teams -- Create direct messages or group messages with members who aren’t within the same channel -- Invite people +.. include:: /onboard/guest-account-access.rst + :start-after: :nosearch: -Additionally, guest accounts count as a paid user in your Mattermost workspace, but guests are not automatically added to the default **Town-square** and **Off-topic** channels upon logging in. Guests must be invited/added to these channels manually. +Additionally, guest accounts count as a paid user in your Mattermost workspace, but guests aren't automatically added to the default **Town-square** and **Off-topic** channels when they log in. Guests must be invited/added to these channels manually. Enable guest accounts ---------------------- @@ -112,9 +99,9 @@ There are `additional permissions `__ in Mat Guest identification --------------------- -Guests are identified with a **Guest** badge. This badge is visible in various places on the interface and mobile apps, such as on a guest’s profile and next to their name on user lists, including @mentions. When guests are added to a channel, a system message informs other channel members that the added user is a guest. +Guests are identified with a **Guest** badge unless your system admin has `disabled guest badges `__. When visible, this badge is visible in various places in the Mattermost interface, such as on a guest’s profile and next to their name on user lists, including @mentions. Additionally, when badges are visible, and guests are added to a channel, a system message notifies other channel members that the added user is a guest. -Channels containing guests display the message: *This channel has guests*. +Additionally, when guest badges are visible, channels containing guests display the message: *This channel has guests*. .. image:: ../images/Guest_Badges.png @@ -122,21 +109,21 @@ Manage guests -------------- Add guests to additional channels -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Users with the permissions to invite guests can **Invite Guests** to additional channels. A system message will be posted in the channels to let other members know a guest user has been added. Remove guests from channels and teams -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Guests can be removed from a channel through **Manage members**, or by using the ``/kick`` or ``/remove`` slash commands. When a guest has been removed from all channels within a team, and if they belong to other teams, they will default into the last channel on the last team they have accessed. If they are removed from all channels on all teams, they'll be taken to a screen letting them know they have no channels assigned. Promote and demote user roles -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -System admins can demote a user from a member to a guest by updating the user's role in **System Console > User Management > Users**. Select the member, then select **Demote to Guest**. System admins should also purge all of the demoted guest's sessions by selecting the guest user, then selecting **Revoke Sessions**. +System admins can demote a user from a member to a guest by updating the user's role in **System Console > User Management > Users**. Select the member, then select **Demote to Guest**. All system and custom roles assigned to the demoted user are removed. System admins should also purge all of the demoted guest's sessions by selecting the guest user, then selecting **Revoke Sessions**. The demoted guest user retains their existing channel and team memberships, but is restricted from discovering public channels and collaborating with users outside of the channels they're in. This is useful if you're already collaborating with external contractors, and want to restrict their abilities within Mattermost. @@ -174,36 +161,36 @@ Frequently asked questions --------------------------- How am I charged for guest accounts? -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Guests are charged as a user seat. Why doesn’t Mattermost have single-channel guests? -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ We wanted to support collaboration with external guests for the broadest use cases without limiting guests' access to channels. In the future, we may consider adding single-channel guests. Can I set an expiration date for guests? -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Currently, you cannot. This feature may be added at a later stage. Can MFA be applied selectively? -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ If MFA is enforced for your users, it can be applied to guest accounts. Guests can configure MFA in by going to their profile picture and selecting **Profile > Security**. If MFA is not enforced for your users, it can't be applied to guest accounts. Has the guest accounts feature been reviewed by an external security firm? -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The guest account feature was reviewed by the Mattermost security team. We do not have an external firm review scheduled but will include this feature in future reviews. How can I validate my guests' identity? -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Guests can be authenticated via SAML and/or AD/LDAP to ensure that only the named guest can log in. Alternatively, you can whitelist domains via **System Console > Authentication > Guest Access > Whitelisted Guest Domains**. Can I restrict guests' ability to upload content? -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ It is not currently possible to selectively disable upload/download functionality as it is a server-wide configuration. diff --git a/source/onboard/managing-team-channel-membership-using-ad-ldap-sync-groups.rst b/source/onboard/managing-team-channel-membership-using-ad-ldap-sync-groups.rst index 2c0ce0e7513..acda1cdfaf7 100644 --- a/source/onboard/managing-team-channel-membership-using-ad-ldap-sync-groups.rst +++ b/source/onboard/managing-team-channel-membership-using-ad-ldap-sync-groups.rst @@ -39,11 +39,11 @@ To manage membership of a private team with synchronized groups: 5. Review the notice in the footer of the screen for any users that are not part of groups who will be removed from the team on the next synchronization. 6. Select **Save**. Members will be updated on the next scheduled AD/LDAP synchronization. -Alternatively you can use the CLI tool to set the team to be managed by groups: +Alternatively you can use the mmctl tools to set the team to be managed by groups: -1. Ensure there's at least one group already associated to the team. You can view and add default teams to a group via **System Console > User Management > Groups > Group Configuration**. See the `CLI `__ documentation for more information on adding default teams and channels. Additionally, you can use the CLI tool to view if there is already a group associated to the team by running the `group team list CLI command `_. +1. Ensure there's at least one group already associated to the team. You can view and add default teams to a group via **System Console > User Management > Groups > Group Configuration**. See the `mmctl group team list `__ documentation for more information on adding default teams and channels and confirming whether if there is already a group associated to the team. 2. Ensure **Team Settings > General > Allow any user with an account on this server to join this team** is set to ``No``. -3. Convert the team to have its membership managed by synchronized groups by running the `group team enable CLI command `_. +3. Convert the team to have its membership managed by synchronized groups by running the `mmctl group team enable `__ command. To manage membership of a private channel with synchronized groups: @@ -54,10 +54,10 @@ To manage membership of a private channel with synchronized groups: 5. Review the notice in the footer of the screen for any users that are not part of groups who will be removed from the channel on the next synchronization. 6. Select **Save**. Members will be updated on the next scheduled AD/LDAP synchronization. -Alternatively you can use the CLI tool to set a private channel to be managed by groups: +Alternatively you can use the mmctl tool to set a private channel to be managed by groups: -1. Ensure there's at least one group already associated to the channel. You can view and add default channels to a group via **System Console > User Management > Groups > Group Configuration**. See our `AD/LDAP `__ documentation for more information on adding default teams and channels. Additionally, you can use the CLI tool to view if there is already a group associated to the channel by running the `group channel list CLI command `_. -2. Convert the team to have its membership managed by synchronized groups by running the `group channel enable CLI command `_. +1. Ensure there's at least one group already associated to the channel. You can view and add default channels to a group via **System Console > User Management > Groups > Group Configuration**. See our `AD/LDAP `__ documentation for more information on adding default teams and channels. Additionally, you can use the mmctl to view if there is already a group associated to the channel by running the `mmctl group channel list `__ command. +2. Convert the team to have its membership managed by synchronized groups by running the `mmctl group channel enable `__ command. Add or remove groups from teams ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -92,9 +92,9 @@ If the user is removed from a synchronized group and later readded to the group, Disabling group synchronized management of teams and private channels ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -To remove the management of members by synchronized groups in a team, disable **Sync Group Members** under **System Console > User Management > Teams > Team Management**, or run the `group team disable CLI command `_. +To remove the management of members by synchronized groups in a team, disable **Sync Group Members** under **System Console > User Management > Teams > Team Management**, or run the `mmctl group team disable `__ command. -To remove the management of members by synchronized groups in a channel, disable **Sync Group Members** under **System Console > User Management > Channels > Channel Management**, or run the `group channel disable CLI command `_. +To remove the management of members by synchronized groups in a channel, disable **Sync Group Members** under **System Console > User Management > Channels > Channel Management**, or run the `mmctl group channel disable `__ command. Frequently asked questions ^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/source/onboard/migrating-to-mattermost.rst b/source/onboard/migrating-to-mattermost.rst index 41050676ee4..a302c8ba87f 100644 --- a/source/onboard/migrating-to-mattermost.rst +++ b/source/onboard/migrating-to-mattermost.rst @@ -8,8 +8,9 @@ Thousands of organizations are moving to Mattermost for powerful, flexible, and This guide summarizes different approaches to migrating from one Mattermost deployment to another, and migrating from other tools (such as Slack, HipChat, Jabber, and bespoke solutions) to Mattermost. -.. contents:: +.. contents:: On this page :backlinks: top + :depth: 1 :local: Migrate Mattermost server diff --git a/source/onboard/run-bulk-loading-command.rst b/source/onboard/run-bulk-loading-command.rst index 3dde059df30..5683839bd44 100644 --- a/source/onboard/run-bulk-loading-command.rst +++ b/source/onboard/run-bulk-loading-command.rst @@ -6,36 +6,8 @@ Bulk load data Before running the bulk loading command, you must first create a `JSONL `__ file that contains the data that you want to import in your Mattermost directory. The file can have any name, but in this example it's called ``data.jsonl``. The format of the file is described in the :ref:`data-format` section. -.. tabs:: +After you create the JSONL file, you need to zip it by running the ``zip -r data.zip data.jsonl`` command, and upload the ZIP file to the database by running the `mmctl import upload `__ command. For example: ``mmctl import upload data.zip``. - .. tab:: Use mmctl +Confirm that the file is uploaded and ready for use by running the `mmctl import list available `__ command. - 1. After you create the JSONL file, you need to zip it by running the ``zip -r data.zip data.jsonl`` command, and upload the ZIP file to the database by running the `mmctl import upload `__ command. For example: ``mmctl import upload data.zip``. - - 2. Confirm that the file is uploaded and ready for use by running the `mmctl import list available `__ command. - - 3. Import your uploaded file by running the `mmctl import process `__ command. For example: ``mmctl import process _data.zip`` (use the name of the uploaded file from `mmctl import list available `__ command). - - .. tab:: Use CLI - - After you create the file, validate that the file is correct by running the bulk load command in validation mode. In this mode, the data is checked for correctness, but is not written to the database. After validating, run the command in apply mode, which saves the data to the database. - - 1. Change to the Mattermost directory. - - ``cd /opt/mattermost`` (the location might be different on your system) - - 2. Run the following command: - - ``sudo -u mattermost bin/mattermost import bulk data.jsonl --validate`` - - 3. Resolve any errors that are reported, and validate the file again. Do not go to the next step until you can run the validate command without errors. - - 4. Run the bulk load command in apply mode: - - ``sudo -u mattermost bin/mattermost import bulk data.jsonl --apply`` - - 5. When the bulk load command completes, clear all caches in the System Console by going to **System Console > Environment > Web Server**. - - .. important:: - - After the import tool has run, all files created in the ``data`` directory are owned by *root* as the tool was run as *sudo*. The owner of the ``data`` directory and all its content has to change to *mattermost* user, otherwise, Mattermost can't fetch the files created in the ``data`` directory after the import tool has run. +Then import your uploaded file by running the `mmctl import process `__ command. For example: ``mmctl import process _data.zip`` (use the name of the uploaded file from `mmctl import list available `__ command). \ No newline at end of file diff --git a/source/onboard/ssl-client-certificate.rst b/source/onboard/ssl-client-certificate.rst index 2989377c330..05da29fed36 100644 --- a/source/onboard/ssl-client-certificate.rst +++ b/source/onboard/ssl-client-certificate.rst @@ -10,8 +10,9 @@ Before you begin, follow the `official guides to install Mattermost `__ and `inviting new members to teams `__. Set up mutual TLS authentication for the web app ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/source/onboard/sso-saml-faq.rst b/source/onboard/sso-saml-faq.rst index a050b84239d..080ba6b5299 100644 --- a/source/onboard/sso-saml-faq.rst +++ b/source/onboard/sso-saml-faq.rst @@ -37,7 +37,7 @@ Yes, but this relies on AD/LDAP to do so. Currently, we do not support SCIM. See How do I migrate users from one authentication method (e.g. email) to SAML? ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -See the `user migrate_auth CLI command `__ documentation, or see the `mmctl user migrate_auth command `__ for details. +See the `mmctl user migrate-auth `__ command documentation for details. How is SAML different from OAuth 2.0 and OpenId Connect? ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/source/onboard/user-provisioning-workflows.rst b/source/onboard/user-provisioning-workflows.rst index 85e2a31cf64..e9a5854e998 100644 --- a/source/onboard/user-provisioning-workflows.rst +++ b/source/onboard/user-provisioning-workflows.rst @@ -38,9 +38,9 @@ Users in Mattermost can be deactivated in the following ways: - **AD/LDAP Synchronization**: AD/LDAP users can be deactivated in Mattermost based on their status in the directory server via synchronization. Learn more in `AD/LDAP documentation `__. - **System Console**: User management screen in **System Console > Users** allows administrators to deactiveate users with email/password login. - **RESTful API** The Mattermost API can be used to deactivate users. See `API documentation to learn more `__. -- **Command Line Interface**: You can use the Mattermost `CLI `__ and `mmctl `__ tools to deactivate users. +- **Command Line Interface**: You can use the Mattermost `mmctl user deactivate `__ command to deactivate users. -Once deactivated, users still exist in the Mattermost database and their messages can still be viewed in Mattermost. You can use the Mattermost `CLI `__, or the `mmctl `__ tools to delete a user and all of their content. +Once deactivated, users still exist in the Mattermost database and their messages can still be viewed in Mattermost. You can use the `mmctl `__ tools to delete a user and all of their content. .. note:: diff --git a/source/scale/elasticsearch.rst b/source/scale/elasticsearch.rst index 00ddb873ad7..96e2daab817 100644 --- a/source/scale/elasticsearch.rst +++ b/source/scale/elasticsearch.rst @@ -121,7 +121,7 @@ Follow these steps to configure Mattermost to use your Elasticsearch server, and - Additional advanced Elasticsearch settings for large deployments can be configured outside the System Console in the ``config.json`` file. Read the `Elasticsearch configuration settings `__ documentation to learn more. - If your deployment has a large number of posts (typically in excess of one million but not strictly defined), the reindexing progress percentage may stay at 99% for a long time. The size of the data to be indexed is estimated, and on large databases, estimations can become inaccurate. While progress estimates may be inaccurate, and the progress percentage may appear stuck at near completion, indexing will continue behind the scenes until complete. - - Search results for files shared before upgrading to Mattermost Server v5.35 may be incomplete until an extraction command is run using the `CLI `__, or using the `mmctl `__. After running this command, the search index must be rebuilt. Go to **System Console > Environment > Elasticsearch > Bulk Indexing**, then select **Index Now** to rebuild the search index to include older file contents. + - Search results for files shared before upgrading to Mattermost Server v5.35 may be incomplete until an extraction command is run using the `mmctl `__. After running this command, the search index must be rebuilt. Go to **System Console > Environment > Elasticsearch > Bulk Indexing**, then select **Index Now** to rebuild the search index to include older file contents. Limitations ------------ diff --git a/source/upgrade/extended-support-release.rst b/source/upgrade/extended-support-release.rst index 670eed5904c..f6bc08ecec0 100644 --- a/source/upgrade/extended-support-release.rst +++ b/source/upgrade/extended-support-release.rst @@ -10,7 +10,7 @@ What is an Extended Support Release? During each monthly release, Mattermost backports security fixes and high impact bug fixes to the previous three monthly releases. Extended Support Releases (ESRs) are releases that will receive backports for security fixes and major bug fixes for the length of their life cycle. .. important:: - Support for Mattermost Server v7.1 Extended Support Release has come to the end of its life cycle on May 15, 2023. Upgrading to Mattermost Server v7.8 Extended Support Release or later is required. + Support for Mattermost Server v7.8 Extended Support Release is coming to the end of its life cycle on November 15, 2023. Upgrading to Mattermost Server v8.1 Extended Support Release or later is recommended. What is the life cycle of an Extended Support Release? ------------------------------------------------------ @@ -49,7 +49,7 @@ What are the current supported Extended Support Release versions? +-------------+----------------+------------------+------------------+--------------------------------------------------------------------------------------------+-----------------------------------------------------+ | Version | Type | Release Date | End of Support | Latest Dot Release Download link | Upgrade Notes | +=============+================+==================+==================+============================================================================================+=====================================================+ -| 8.1 | Feature | August 16, 2023 | May 15, 2024 | | | +| 8.1 | Feature | August 16, 2023 | May 15, 2024 | `8.1.0 `_ | | +-------------+----------------+------------------+------------------+--------------------------------------------------------------------------------------------+-----------------------------------------------------+ | 7.8 | Feature | February 16, 2023| November 15, 2023| `7.8.9 `_ | | +-------------+----------------+------------------+------------------+--------------------------------------------------------------------------------------------+-----------------------------------------------------+ diff --git a/source/upgrade/important-upgrade-notes.rst b/source/upgrade/important-upgrade-notes.rst index 8b9d4bb56b6..6e1be816dc7 100644 --- a/source/upgrade/important-upgrade-notes.rst +++ b/source/upgrade/important-upgrade-notes.rst @@ -5,7 +5,7 @@ Important Upgrade Notes :start-after: :nosearch: .. important:: - - Support for Mattermost Server v7.1 :doc:`Extended Support Release ` has come to the end of its life cycle in May 15, 2023. Upgrading to Mattermost Server v7.8 :doc:`Extended Support Release ` or later is required. + - Support for Mattermost Server v7.8 :doc:`Extended Support Release ` is coming to the end of its life cycle in November 15, 2023. Upgrading to Mattermost Server v8.1 :doc:`Extended Support Release ` or later is recommended. - MySQL 8.0.22 contains an `issue with JSON column types `__ changing string values to integers which is preventing Mattermost from working properly. Users are advised to avoid this database version. - Upgrading the Microsoft Teams Calling plugin to v2.0.0 requires users to reconnect their accounts. - When upgrading to 7.x from a 5.x release please make sure to upgrade to 5.37.10 first for the upgrade to complete successfully. diff --git a/source/upgrade/installing-license-key.rst b/source/upgrade/installing-license-key.rst index f47d9d3eb1b..161c6495b4d 100644 --- a/source/upgrade/installing-license-key.rst +++ b/source/upgrade/installing-license-key.rst @@ -4,7 +4,7 @@ Install a License Key .. include:: ../_static/badges/ent-pro-cloud-selfhosted.rst :start-after: :nosearch: -You can use the System Console, the mmctl, or the CLI to add or change a Mattermost license key. +You can use the System Console or the mmctl tools to add or change a Mattermost license key. .. tabs:: diff --git a/source/upgrade/open-source-components.rst b/source/upgrade/open-source-components.rst index 5fe98293056..642b4b57baa 100644 --- a/source/upgrade/open-source-components.rst +++ b/source/upgrade/open-source-components.rst @@ -27,6 +27,7 @@ Desktop Mobile ------- + - Mattermost Mobile v2.7.0 - `View Open Source Components `_. - Mattermost Mobile v2.6.0 - `View Open Source Components `_. - Mattermost Mobile v2.5.0 - `View Open Source Components `_. - Mattermost Mobile v2.4.0 - `View Open Source Components `_. @@ -94,6 +95,7 @@ Mobile Server ------------------------------ + - Mattermost Enterprise Edition v8.1.0 - `View Open Source Components `_. - Mattermost Enterprise Edition v8.0.0 - `View Open Source Components `_. - Mattermost Enterprise Edition v7.10.0 - `View Open Source Components `_. - Mattermost Enterprise Edition v7.9.0 - `View Open Source Components `_. diff --git a/source/upgrade/prepare-to-upgrade-mattermost.rst b/source/upgrade/prepare-to-upgrade-mattermost.rst index 03432d35fdd..bed6fd56eed 100644 --- a/source/upgrade/prepare-to-upgrade-mattermost.rst +++ b/source/upgrade/prepare-to-upgrade-mattermost.rst @@ -63,7 +63,7 @@ We strongly recommend that you: .. important:: - Support for Mattermost Server v7.1 :doc:`Extended Support Release ` has come to the end of its life cycle on May 15, 2023. Upgrading to Mattermost Server v7.8 Extended Support Release or later is required. Upgrading from a previous Extended Support Release to the latest Extended Support Release is supported. Upgrading from v5.31 to v5.37 should take roughly the same amount of time as upgrading from v5.31 to v5.35, then upgrading v5.35 to 5.37. However, an upgrade directly from v5.31 to v5.37 could potentially take hours due to the database schema migrations required for v5.35. Review the :doc:`important-upgrade-notes` for all intermediate versions in between to ensure you’re aware of the possible migrations that could affect your upgrade. + Support for Mattermost Server v7.8 :doc:`Extended Support Release ` is coming to the end of its life cycle on November 15, 2023. Upgrading to Mattermost Server v8.1 Extended Support Release or later is recommended. Upgrading from a previous Extended Support Release to the latest Extended Support Release is supported. Upgrading from v5.31 to v5.37 should take roughly the same amount of time as upgrading from v5.31 to v5.35, then upgrading v5.35 to 5.37. However, an upgrade directly from v5.31 to v5.37 could potentially take hours due to the database schema migrations required for v5.35. Review the :doc:`important-upgrade-notes` for all intermediate versions in between to ensure you’re aware of the possible migrations that could affect your upgrade. v6.0 database schema migrations ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -128,4 +128,4 @@ Ensure you review the `high availability cluster upgrade guide ` has come to the end of its life cycle on May 15, 2023. Upgrading to Mattermost Server v7.8 or later is required. + Support for Mattermost Server v7.8 :doc:`Extended Support Release ` is coming to the end of its life cycle on November 15, 2023. Upgrading to Mattermost Server v8.1 or later is recommended. +-------------+-----------------------+--------------------------+--------------------------+--------------------------+ | Version | Release Type | Lifecyle Start Date | Lifecycle End Date | Extended Support Release | +=============+=======================+==========================+==========================+==========================+ +| 9.0 | Major | 2023-09-16 | 2023-12-15 | | ++-------------+-----------------------+--------------------------+--------------------------+--------------------------+ | 8.1 | Feature | 2023-08-16 | 2024-05-15 | Yes | +-------------+-----------------------+--------------------------+--------------------------+--------------------------+ | 8.0 | Major | 2023-07-16 | 2023-10-15 | | diff --git a/source/upgrade/version-archive.rst b/source/upgrade/version-archive.rst index 2676dd98bec..dd7d2bea64a 100644 --- a/source/upgrade/version-archive.rst +++ b/source/upgrade/version-archive.rst @@ -8,7 +8,7 @@ If you want to check that the version of Mattermost you are installing is the of .. important:: - Support for Mattermost Server v7.1 :doc:`Extended Support Release ` has come to the end of its life cycle on May 15, 2023. Upgrading to Mattermost Server v7.8 :doc:`Extended Support Release ` or later is required. + Support for Mattermost Server v7.8 :doc:`Extended Support Release ` is coming to the end of its life cycle on November 15, 2023. Upgrading to Mattermost Server v8.1 :doc:`Extended Support Release ` or later is recommended. .. contents:: :backlinks: top diff --git a/source/welcome/about-teams.rst b/source/welcome/about-teams.rst index 661063f7123..0f6196ffe12 100644 --- a/source/welcome/about-teams.rst +++ b/source/welcome/about-teams.rst @@ -7,6 +7,11 @@ About teams .. |plus| image:: ../images/plus_F0415.svg :alt: The Plus icon provides access to channel and direct message functionality. +.. contents:: On this page + :backlinks: top + :depth: 1 + :local: + A team is a digital workspace where you and your teammates can collaborate in Mattermost. Depending on how Mattermost is set up in your organization, you can belong to one team or multiple teams. Only users with the **Create Teams** permission can `create new teams <#create-a-team>`__ and `manage team settings `__ for existing teams. @@ -96,7 +101,9 @@ Send a direct invite Direct invites are invitation emails sent from your team's server directly to the invited person's email address. A link within the invitation directs them to an account creation page. Invitation links sent by email expire after 48 hours and can only be used once. .. note:: - A System Admin can invalidate all active invitation links via **System Console > Authentication > Signup > Invalidate pending email invites**. + + - A System Admin can invalidate all active invitation links via **System Console > Authentication > Signup > Invalidate pending email invites**. + - If you can't invite others to the team, contact your system admin for assistance. You may not have sufficent permissions to do so, or `email invitations may not be enabled `__. .. tabs:: @@ -122,15 +129,16 @@ Direct invites are invitation emails sent from your team's server directly to th - Entering a user's email address. - Sharing the invitation link with users directly as a `team invitation link <#send-a-team-invite-link>`__. -.. note:: - - If you can't invite others to the team, contact your system admin for assistance. You may not have sufficent permissions to do so, or email invitations may not be enabled. - Send a team invite link ~~~~~~~~~~~~~~~~~~~~~~~ You can share a unique URL that takes users to a Mattermost account creation page to join the current team. A team invite link can be used by anyone and doesn't change unless it's re-generated by a system admin or team admin via **Team Settings > General > Invite Code**. For example, the team invite link can be included in a company-wide email to invite all employees to join a Mattermost team. +.. note:: + + If you're unable to share links, contact your Mattermost system admin for assistance. An `SSL certificate (or a self-signed certificate) `__ may be required for this functioanlity to work. + + .. tabs:: .. tab:: Desktop diff --git a/source/welcome/about-user-roles.rst b/source/welcome/about-user-roles.rst index 7bbfc822031..19d7ab868cc 100644 --- a/source/welcome/about-user-roles.rst +++ b/source/welcome/about-user-roles.rst @@ -4,23 +4,23 @@ About user roles .. include:: ../_static/badges/allplans-cloud-selfhosted.rst :start-after: :nosearch: -There are six types of user roles with different permission levels in Mattermost: System Admins, Team Admins, Channel Admins, Members, Guests, and Inactive accounts. To view a list of users on the team and what their roles are, Team Admins using Mattermost in a web browser or the desktop app can open the Team menu and select **Manage Members**. +There are six types of user roles with different permission levels in Mattermost: system admin, team admins, channel admins, members, guests, and inactive accounts. To view a list of users on the team and what their roles are, Team Admins using Mattermost in a web browser or the desktop app can open the Team menu and select **Manage Members**. System Admin ------------ -The first user added to a newly-installed Mattermost system is assigned the System Admin role. +The first user added to a newly-installed Mattermost system is assigned the system admin role. -The System Admin is typically a member of the IT staff and has all the privileges of a Team Admin, along with the following additional privileges: +The system admin is typically a member of the IT staff and has all the privileges of a Team Admin, along with the following additional privileges: - Access to the System Console in any team site. - Ability to change any setting on the Mattermost server available in the System Console. -- Ability to promote and demote other users from Member role to System Admin role (and vice versa). +- Ability to promote and demote other users from Member role to system admin role (and vice versa). - Ability to promote and demote other users to and from Guest role. - Ability to deactivate user accounts and to reactivate them. - Access to private channels, but only if given the link to the private channel. -A System Admin can view and manage users in **System Console > User Management > Users**. They can search users by name, filter users by teams, and filter to view other System Admins, guests, as well as active and inactive users. +A system admin can view and manage users in **System Console > User Management > Users**. They can search users by name, filter users by teams, and filter to view other system admins, guests, as well as active and inactive users. Only a system admin can make changes to another system admin user account in Mattermost. Team Admin ---------- @@ -43,7 +43,7 @@ The person who creates a channel is assigned the Channel Admin role for that cha - Ability to remove members from the channel. - Ability to configure channel actions that automate tasks based on trigger conditions, such as `joining a channel `__ or `sending a message `__ in a channel. -Depending on your system configuration, Channel Admins can be granted special permissions by the System Admin to rename and delete channels. +Depending on your system configuration, Channel Admins can be granted special permissions by the system admin to rename and delete channels. Member ------ @@ -53,29 +53,19 @@ This is the default role given to users when they join a team. Members have basi Guest ----- -Guest is a role with restricted permissions, which allow organizations to collaborate with users outside of their organization, and control what channels they are in and who they can collaborate with. +A guest is a role with restricted permissions, which allow organizations to collaborate with users outside of their organization, and control what channels they are in and who they can collaborate with. -Guests can: - -- Pin messages to channels. -- Use slash commands (with the exception of those used to invite members). -- Favorite channels. -- Mute channels. -- Update their profile. -- Use different authentication methods than other users - -Guests cannot: +.. include:: /onboard/guest-account-access.rst + :start-after: :nosearch: -- Discover public channels. -- Join open teams. -- Create direct messages or group messages with members who aren’t within the same channel. +See the `guest accounts `__ documentation for details on working with guest accounts. User with personal access token permission ------------------------------------------ -A System Admin can enable `personal access tokens `__ and give permissions for that account to create personal access tokens in **System Console > Users**. +A system admin can enable `personal access tokens `__ and give permissions for that account to create personal access tokens in **System Console > Users**. -In addition, the System Admin can optionally set the following permissions for the account, useful for integrations and bot accounts: +In addition, the system admin can optionally set the following permissions for the account, useful for integrations and bot accounts: - **post:all**: Allows the account to post to all Mattermost channels including direct messages. - **post:channels**: Allows the account to post to all Mattermost public channels. @@ -83,7 +73,7 @@ In addition, the System Admin can optionally set the following permissions for t Deactivate users ---------------- -A System Admin can deactivate user accounts via **System Console > Users** for a list of all users on the server. The list can be searched and filtered to make finding users easier. Select the user's role and in the menu that opens, then select **Deactivate**. +A system admin can deactivate user accounts via **System Console > Users** for a list of all users on the server. The list can be searched and filtered to make finding users easier. Select the user's role and in the menu that opens, then select **Deactivate**. When **Deactivate** is selected, the user is logged out of the system, and receives an error message if they try to log back in. The user no longer appears in channel member lists, and they are removed from the team members list. A deactivated account can also be reactivated from the System Console, in which case the user rejoins channels and teams that they previously belonged to. diff --git a/source/welcome/manage-multiple-server-connections.rst b/source/welcome/manage-multiple-server-connections.rst index 58eed1983e5..4e10314b8a5 100644 --- a/source/welcome/manage-multiple-server-connections.rst +++ b/source/welcome/manage-multiple-server-connections.rst @@ -63,8 +63,8 @@ Using the Mattermost desktop or mobile app, you can connect to multiple Mattermo Tap the **Servers** |servers-icon| icon located in the top left corner of the window to access all available servers and to add new servers. - To configure a new server accessible through the mobile app: - + **Add a server** + 1. Tap **Add a server**. 2. Enter the server URL. Server URLs must begin with either ``http://`` or ``https://``. 3. Enter the server's Display Name. @@ -72,4 +72,16 @@ Using the Mattermost desktop or mobile app, you can connect to multiple Mattermo .. tip:: - Can't find your Mattermost server URL? Ask your company’s IT department or your Mattermost system admin for your organization’s **Mattermost Site URL**. It’ll look something like ``https://example.com/company/mattermost``, ``mattermost.yourcompanydomain.com``, or ``chat.yourcompanydomain.com``. These URLs could also end in ``.net``. \ No newline at end of file + Can't find your Mattermost server URL? Ask your company’s IT department or your Mattermost system admin for your organization’s **Mattermost Site URL**. It’ll look something like ``https://example.com/company/mattermost``, ``mattermost.yourcompanydomain.com``, or ``chat.yourcompanydomain.com``. These URLs could also end in ``.net``. + + **Remove a server** + + Swipe left on an existing server entry to reveal additional options. Tap **Remove**. + + .. image:: ../images/swipe-left-to-remove.png + :width: 400px + :alt: In the Mattermost mobile app, swipe left on an existing server connection entry to delete the connection. + + .. note:: + + Removing a server from your mobile app doesn't delete its data. You can add the server back any time.