Skip to content

Commit 864c400

Browse files
committed
Merge branch master into monlithic-install with resolved conflicts
2 parents 50f0308 + 64beb0a commit 864c400

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

64 files changed

+2209
-1038
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ model/version.go.bak
1818
# Folders
1919
_obj
2020
_test
21+
.vscode
2122

2223
# Architecture specific extensions/prefixes
2324
[568vq].out

source/administration/backup.rst

Lines changed: 50 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ To backup your Mattermost server:
2828
To restore a Mattermost instance from backup, restore your database, ``config.json`` file and optionally locally stored user files into the locations from which they were backed up.
2929

3030
Disaster Recovery
31-
-----------------
31+
---------------------------
3232

3333
An appropriate disaster recovery plan weighs the benefits of mitigating specific risks against the cost and complexity of setting up disaster recovery infrastructure and automation.
3434

@@ -59,3 +59,52 @@ A properly deployed high availability setup automatically switches over to a red
5959

6060
A "complete" disaster recovery solution would protect against both real-time hardware failures using high availability, data corruption failures using automated, and failures of the primary data center by offering both offsite backup and offsite redundant infrastructure. Because the complexity of a full disaster recovery solution is high, it is common for customers to consider trade-offs in cost and complexity relative to the anticipated risks and target recovery times.
6161

62+
Failover from single sign-in outage
63+
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
64+
65+
When using single sign-on with Mattermost Enterprise Edition an outage to your SSO provider can cause a partial outage on your Mattermost instance.
66+
67+
**What happens during an SSO outage?**
68+
69+
_Most people can still log in_ - By default, when a user logs in to Mattermost they receive a session token lasting 30 days (the duration can be configured in the System Console). During an SSO outage, users with valid session tokens can continue to using Mattermost uninterrupted.
70+
71+
_Some people can't log in_ - During an SSO outage, there are two situations under which a user cannot log in:
72+
73+
a) Users whose session token expires during the outage
74+
75+
b) Users trying to log in to new devices
76+
77+
In each case, the user cannot reach the SSO provider, and cannot log in. In this case, there are several potential mitigations:
78+
79+
1) Configure your SSO provider for high availability
80+
81+
If you're using a self-hosted single sign-on provider, several options are available for `high availability configurations that protect your system from unplanned outages. <https://docs.microsoft.com/en-us/microsoft-identity-manager/pam/high-availability-disaster-recovery-considerations-bastion-environment>`_
82+
83+
For SaaS-based authentication providers, while you still have a dependency on service uptime, you can set up redundancy in source systems from which data is being pulled. For example, with the OneLogin SaaS-based authentication service, you can set up `high availability LDAP connectivity <https://support.onelogin.com/hc/en-us/articles/204262680-High-Availability-for-LDAP>`_ to further reduce the chances of an outage.
84+
85+
2) Set up your own IDP to provide an automated or manual SSO failover option
86+
87+
Create a custom Identity Provider for SAML authentication that connects to both an active and a standby authentication option, that can be manually or automatically switched in case of an outage.
88+
89+
In this configuration, security should be carefully reviewed to prevent the standby SSO option from weakening your authentication protocols.
90+
91+
3) Set up a manual failover plan for SSO outages
92+
93+
When users are unable to reach your organization's SSO provider during an outage, an error message informing the users to contact your support link (defined in your System Console settings) is displayed.
94+
95+
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.
96+
97+
If the administrator 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 <https://docs.mattermost.com/administration/command-line-tools.html>`_.
98+
99+
It is highly important after the outage to switch everyone back to SSO from email-password to maintain consistency and security.
100+
101+
102+
103+
104+
105+
106+
107+
108+
109+
110+

source/administration/changelog.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -279,7 +279,7 @@ Many thanks to all our contributors. In alphabetical order:
279279

280280
/platform
281281

282-
- [alsma](https://github.com/alsma), [asaadmahmood](https://github.com/asaadmahmood), [coreyhulen](https://github.com/coreyhulen), [crspeller](https://github.com/crspeller), [DavidLu1997](https://github.com/DavidLu1997), [digitaltoad](https://github.com/digitaltoad), [dmeza](https://github.com/dmeza), [enahum](https://github.com/enahum), [esethna](https://github.com/esethna), [grundleborg](https://github.com/grundleborg), [hmhealey](https://github.com/hmhealey), [it33](https://github.com/it33), [jasonblais](https://github.com/jasonblais), [jwilander](https://github.com/jwilander), [kaakaa](https://github.com/kaakaa), [lfbrock](https://github.com/lfbrock), [npcode](https://github.com/npcode), [R-Wang97](https://github.com/R-Wang97), [Rudloff](https://github.com/Rudloff), [S4KH](https://github.com/S4KH), [shieldsjared](https://github.com/shieldsjared), [thomchop](https://github.com/thomchop), [usmanarif](https://github.com/usmanarif), [wget](https://github.com/wget), [yangchen1](https://github.com/yangchen1)
282+
- [alsma](https://github.com/alsma), [asaadmahmood](https://github.com/asaadmahmood), [coreyhulen](https://github.com/coreyhulen), [crspeller](https://github.com/crspeller), [DavidLu1997](https://github.com/DavidLu1997), [digitaltoad](https://github.com/digitaltoad), [dmeza](https://github.com/dmeza), [enahum](https://github.com/enahum), [esethna](https://github.com/esethna), [grundleborg](https://github.com/grundleborg), [harshavardhana](https://github.com/harshavardhana), [hmhealey](https://github.com/hmhealey), [it33](https://github.com/it33), [jasonblais](https://github.com/jasonblais), [jwilander](https://github.com/jwilander), [kaakaa](https://github.com/kaakaa), [lfbrock](https://github.com/lfbrock), [npcode](https://github.com/npcode), [R-Wang97](https://github.com/R-Wang97), [Rudloff](https://github.com/Rudloff), [S4KH](https://github.com/S4KH), [shieldsjared](https://github.com/shieldsjared), [thomchop](https://github.com/thomchop), [usmanarif](https://github.com/usmanarif), [wget](https://github.com/wget), [yangchen1](https://github.com/yangchen1)
283283

284284
/ios
285285

@@ -291,7 +291,7 @@ Many thanks to all our contributors. In alphabetical order:
291291

292292
/docs
293293

294-
- [asaadmahmood](https://github.com/asaadmahmood), [chikei](https://github.com/chikei), [crspeller](https://github.com/crspeller), [erikthered](https://github.com/erikthered), [esethna](https://github.com/esethna), [gabx](https://github.com/gabx), [gmorel](https://github.com/gmorel), [grundleborg](https://github.com/grundleborg), [hannaparks](https://github.com/hannaparks), [hmhealey](https://github.com/hmhealey), [it33](https://github.com/it33), [jasonblais](https://github.com/jasonblais), [JeffSchering](https://github.com/JeffSchering), [kunthar](https://github.com/kunthar), [lfbrock](https://github.com/lfbrock), [lindy65](https://github.com/lindy65), [npcode](https://github.com/npcode), [reach3r](https://github.com/reach3r), [Rudloff](https://github.com/Rudloff), [rwillmer](https://github.com/rwillmer), [shieldsjared](https://github.com/shieldsjared), [StraylightSky](https://github.com/StraylightSky), [thiyagaraj](https://github.com/thiyagaraj), [yangchen1](https://github.com/yangchen1), [yumenohosi](https://github.com/yumenohosi), [yuya-oc](https://github.com/yuya-oc), [Zhouzi](https://github.com/Zhouzi)
294+
- [asaadmahmood](https://github.com/asaadmahmood), [chikei](https://github.com/chikei), [crspeller](https://github.com/crspeller), [erikthered](https://github.com/erikthered), [esethna](https://github.com/esethna), [gabx](https://github.com/gabx), [gmorel](https://github.com/gmorel), [grundleborg](https://github.com/grundleborg), [hannaparks](https://github.com/hannaparks), [harshavardhana](https://github.com/harshavardhana), [hmhealey](https://github.com/hmhealey), [it33](https://github.com/it33), [jasonblais](https://github.com/jasonblais), [JeffSchering](https://github.com/JeffSchering), [kunthar](https://github.com/kunthar), [lfbrock](https://github.com/lfbrock), [lindy65](https://github.com/lindy65), [npcode](https://github.com/npcode), [reach3r](https://github.com/reach3r), [Rudloff](https://github.com/Rudloff), [rwillmer](https://github.com/rwillmer), [shieldsjared](https://github.com/shieldsjared), [StraylightSky](https://github.com/StraylightSky), [thiyagaraj](https://github.com/thiyagaraj), [yangchen1](https://github.com/yangchen1), [yumenohosi](https://github.com/yumenohosi), [yuya-oc](https://github.com/yuya-oc), [Zhouzi](https://github.com/Zhouzi)
295295

296296
/mattermost-docker
297297

source/administration/config-settings.rst

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ Connection Security
6666
**TLS**: Encrypts the communication between Mattermost and your server. See [documentation](https://docs.mattermost.com/install/setup-tls.html) for more details.
6767

6868
+---------------------------------------------------------------------------------------------------------------------------------------------+
69-
| This feature's ``config.json`` setting is ``"ConnectionSecurity": ""`` with options ``""`` and ``tls`` for the above settings respectively |
69+
| This feature's ``config.json`` setting is ``"ConnectionSecurity": ""`` with options ``""`` and ``TLS`` for the above settings respectively |
7070
+---------------------------------------------------------------------------------------------------------------------------------------------+
7171

7272
TLS Certificate File
@@ -588,7 +588,7 @@ Obtain this value by logging into your GitLab account. Go to Profile Settings >
588588

589589
User API Endpoint
590590
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
591-
Enter ``https://<your-gitlab-url>/oauth/authorize`` (example: ``https://example.com:3000/api/v3/user``). Use HTTP or HTTPS depending on how your server is configured.
591+
Enter ``https://<your-gitlab-url>/api/v3/user`` (example: ``https://example.com:3000/api/v3/user``). Use HTTP or HTTPS depending on how your server is configured.
592592

593593
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
594594
| This feature's ``config.json`` setting is ``"UserApiEndpoint": ""`` with string input. |
@@ -604,7 +604,7 @@ Enter ``https://<your-gitlab-url>/oauth/authorize`` (example: ``https://example.
604604

605605
Token Endpoint
606606
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
607-
Enter ``https://<your-gitlab-url>/oauth/authorize`` (example: ``https://example.com:3000/oauth/token``). Use HTTP or HTTPS depending on how your server is configured.
607+
Enter ``https://<your-gitlab-url>/oauth/token`` (example: ``https://example.com:3000/oauth/token``). Use HTTP or HTTPS depending on how your server is configured.
608608

609609
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
610610
| This feature's ``config.json`` setting is ``"TokenEndpoint": ""`` with string input. |
@@ -1930,15 +1930,17 @@ Maximum number of requests allowed beyond the per second query limit.
19301930

19311931
Memory Store Size
19321932
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1933-
Maximum number of user sessions connected to the system as determined by **VaryByRemoteAddr** and **VaryByHeader** variables.
1933+
Maximum number of user sessions connected to the system as determined by **VaryByRemoteAddr** and **VaryByHeader** variables.
1934+
1935+
Typically set to the number of users in the system.
19341936

19351937
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
19361938
| This feature's ``config.json`` setting is ``"MemoryStoreSize": 10000`` with whole number input. |
19371939
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
19381940

19391941
Vary rate limit by remote address
19401942
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1941-
**True**: Rate limit API access by IP address.
1943+
**True**: Rate limit API access by IP address. Recommended to set to ``true`` if you're using a proxy.
19421944

19431945
**False**: Rate limiting does not vary by IP address.
19441946

@@ -1948,7 +1950,7 @@ Vary rate limit by remote address
19481950

19491951
Vary rate limit by HTTP header
19501952
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1951-
Vary rate limiting by HTTP header field specified (e.g. when configuring Ngnix set to "X-Real-IP", when configuring AmazonELB set to "X-Forwarded-For").
1953+
Vary rate limiting by HTTP header field specified (e.g. when configuring Ngnix set to "X-Real-IP", when configuring AmazonELB set to "X-Forwarded-For"). Recommended to be set if you're using a proxy.
19521954

19531955
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
19541956
| This feature's ``config.json`` setting is ``"VaryByHeader": ""`` with string input. |

source/administration/migrating.rst

Lines changed: 73 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,4 +26,76 @@ The following instructions migrate Mattermost from one server to another by back
2626
Migrating from Slack
2727
====================
2828

29-
You can import channels and users from Slack into Mattermost from Team Settings > Import. Please review our documentation on `Slack Import <https://docs.mattermost.com/help/settings/team-settings.html#import-from-slack-beta>`_ for more details.
29+
.. note:: As a proprietary SaaS service, Slack is able to change its export format quickly and without notice. If you encounter issues not mentioned in the documentation below, please alert the product team by `filing an issue <https://www.mattermost.org/filing-issues/>`_.
30+
31+
The Slack Import feature in Mattermost is in "Beta" and focused on supporting migration of teams of less than 100 registered users.
32+
33+
This feature can be accessed through the `Mattermost Web App <https://docs.mattermost.com/administration/migrating.html#migrating-from-slack-using-the-mattermost-web-app>`_ or using the `CLI <https://docs.mattermost.com/administration/migrating.html#migrating-from-slack-using-the-mattermost-cli>`_.
34+
35+
.. warning:: **It is highly recommended that you test Slack import before applying it to an instance intended for production.**
36+
37+
If you use Docker, you can spin up a test instance in one line:
38+
39+
.. code:: bash
40+
41+
docker run --name mattermost-dev -d --publish 8065:80 mattermost/platform
42+
43+
If you don't use Docker, there are `step-by-step instructions <https://docs.mattermost.com/install/docker-local-machine.html>`_ to install Mattermost in preview mode in less than 5 minutes.
44+
45+
Supported Features
46+
++++++++++++++++++
47+
48+
The following key features are supported when importing from Slack:
49+
50+
* User accounts with an email address set
51+
52+
* Public channels and the text messages posted in them
53+
54+
* Channel topic and purpose
55+
56+
* Imported users added automatically to their channels
57+
58+
Messages with file attachments are imported as a message containing a link to Slack's servers by default. The file attachments themselves can be imported to Mattermost by using the `Slack Advanced Exporter <https://github.com/grundleborg/slack-advanced-exporter>`_ tool to add them to your archive before importing it.
59+
60+
Bot and Integration messages are imported by default, but if you would like them to display with the appropriate username when imported, you should ensure that `Enable Integrations to Override Usernames <https://docs.mattermost.com/administration/config-settings.html#enable-integrations-to-override-usernames>`_ is set in **System Console > Integrations > Custom Integrations** *before* doing the import.
61+
62+
.. note:: Slack user accounts with the same email address as existing accounts on your Mattermost server will be merged into those accounts on import.
63+
64+
Limitations
65+
+++++++++++
66+
67+
The following limitations are present when importing from Slack:
68+
69+
* The Markdown subset used by Slack's Posts 2.0 feature announced on September 28, 2015 is not yet supported.
70+
71+
* Direct Message and Private Groups cannot be imported. Slack does not include these messages when generating the export archive.
72+
73+
Migrating from Slack using the Mattermost Web App
74+
+++++++++++++++++++++++++++++++++++++++++++++++++
75+
76+
.. note:: For larger imports, particularly those where you have used the `slack-advanced-exporter tool` to add Slack post attachments to the archive, it is recommended to import the Slack data using the `CLI <https://docs.mattermost.com/administration/migrating.html#migrating-from-slack-using-the-mattermost-cli>`_.
77+
78+
1. Generate a Slack "Export" file from **Slack > Team Settings > Import/Export Data > Export > Start Export**.
79+
80+
2. In Mattermost go to **Team Settings > Import > Import from Slack**. Team Admin or System Admin role is required to access this menu option.
81+
82+
3. Click **Select file** to upload Slack export file and click **Import**.
83+
84+
85+
Migrating from Slack using the Mattermost CLI
86+
+++++++++++++++++++++++++++++++++++++++++++++
87+
88+
1. Generate a Slack "Export" file from **Slack > Team Settings > Import/Export Data > Export > Start Export**.
89+
90+
2. Run the following Mattermost CLI command, with the name of a team you have already created:
91+
92+
``$ platform -slack_import -team_name="your-team" -import_archive /path/to/your-slack-export.zip``
93+
94+
Using the Imported Team
95+
+++++++++++++++++++++++
96+
97+
* During the import process, the emails and usernames from Slack are used to create new Mattermost accounts.
98+
99+
* Slack users can activate their new Mattermost accounts by using Mattermost's Password Reset screen with their email addresses from Slack to set new passwords for their Mattermost accounts.
100+
101+
* Once logged in, Mattermost users will have access to previous Slack messages in the public channels imported from Slack.

0 commit comments

Comments
 (0)