Skip to content

Commit

Permalink
Merge branch 'master' into release-lifecycle-updates
Browse files Browse the repository at this point in the history
  • Loading branch information
cwarnermm committed Jun 26, 2024
2 parents 47332ac + 87b6f42 commit 5a79827
Show file tree
Hide file tree
Showing 7 changed files with 107 additions and 19 deletions.
13 changes: 13 additions & 0 deletions source/_static/css/mattermost-global.css
Original file line number Diff line number Diff line change
Expand Up @@ -178,10 +178,23 @@ section[id] {
align-items: center;
}

.notification-bar__wrapper a {
display: flex;
align-items: center;
}

.notification-bar__content>div img {
display: none;
}

@media (min-width:992px) {
.notification-bar__content>div img {
display: block;
max-height: 25px;
width: auto;
}
}

.notification-bar a {
color: #1B1D22 !important;
}
Expand Down
4 changes: 2 additions & 2 deletions source/_static/js/myscript-v1.js
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ $(document).ready(function () {
// Fallback for when a notification CTA expires - ie. webinar happens
const dateInFuture = (value) =>
new Date().getTime() <= new Date(value).getTime();
const expiryDate = '2024-06-07T00:00:00-0500';
const expiryDate = '2024-07-11T00:00:00-0500';
// 2024-03-28 @ 12am EST
const fallback_url =
'https://mattermost.com/solutions/mattermost-for-microsoft-teams/';
Expand All @@ -85,7 +85,7 @@ $(document).ready(function () {
// So it will show up for new announcements
// Keep "mm_notification_banner__" at the beginning of the key
// Add system to clean out storage items that are no longer needed
let notification_banner_key = 'mm_notification_banner__webinar-june-2024-ai';
let notification_banner_key = 'mm_notification_banner__webinar-july-2024-copilot';
if (!dateInFuture(expiryDate)) {
notification_banner_key = 'mm_notification_banner__fallback-mst';
}
Expand Down
2 changes: 1 addition & 1 deletion source/_templates/custom-nav.html
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
<span aria-hidden="true">×</span>
</a>
<div class="notification-bar__wrapper">
<a href="https://mattermost.com/webinar/ai-collaboration-landscape-of-tomorrow/" target="_blank" class="notification-bar__link">[WEBINAR] How AI is Transforming Mission-Critical Work</a>
<a href="https://mattermost.com/webinar/copilot-demo-ai-enhanced-collaboration/" target="_blank" class="notification-bar__link"><img src="{{ pathto('_static/images/notification-bar/icon-megaphone.svg', 1) }}" alt="">[WEBINAR] Mattermost Copilot Demo: AI-Enhanced Collaboration</a>
</div>
</div>
</div>
Expand Down
10 changes: 8 additions & 2 deletions source/collaborate/install-desktop-app.rst
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,10 @@ You can download the `desktop app <https://mattermost.com/apps/>`_ directly from

Both a ``.deb`` package (Beta), and an official APT repository is available for Debian 9 and for Ubuntu releases 20.04 LTS or later. Automatic app updates are supported and enabled. When a new version of the desktop app is released, your app updates automatically.

.. important::

The GPG public key has changed. If you had previously set up the repository on your system, you'll need to download the new key. You can set the ``UPDATE_GPG_KEY=yes`` environment variable when running the setup script to configure it to overwrite the previous key on your system with the new one. The first step of installation then becomes: ``curl -fsS -o- https://deb.packages.mattermost.com/setup-repo.sh | sudo UPDATE_GPG_KEY=yes bash``. Depending on your setup, additional steps may also be required, particularly for installations that don't rely on the repository setup script.

1. At the command line, set up the Mattermost repository on your system:

.. code-block:: none
Expand Down Expand Up @@ -171,9 +175,11 @@ You can download the `desktop app <https://mattermost.com/apps/>`_ directly from
- 64-bit systems: `mattermost-desktop-5.8.1-linux-x64.tar.gz <https://releases.mattermost.com/desktop/5.8.1/mattermost-desktop-5.8.1-linux-x64.tar.gz>`_
- 32-bit systems: `mattermost-desktop-5.8.1-linux-ia32.tar.gz <https://releases.mattermost.com/desktop/5.8.1/mattermost-desktop-5.8.1-linux-ia32.tar.gz>`_

2. Extract the archive to a convenient location, then execute ``mattermost-desktop`` located inside the extracted directory.
2. Extract the archive to a convenient location, then give ``chrome-sandbox`` in the extracted directory the required ownership and permissions: ``sudo chown root:root chrome-sandbox && sudo chmod 4755 chrome-sandbox``

3. Execute ``mattermost-desktop`` located inside the extracted directory.

3. To create a Desktop launcher, open the file ``README.md``, and follow the instructions in the **Desktop launcher** section.
4. To create a Desktop launcher, open the file ``README.md``, and follow the instructions in the **Desktop launcher** section.

Log in using the desktop app
-----------------------------
Expand Down
73 changes: 62 additions & 11 deletions source/configure/calls-deployment.rst
Original file line number Diff line number Diff line change
Expand Up @@ -181,7 +181,10 @@ Both the plugin and the external ``rtcd`` service expose some Prometheus metrics
Calls plugin metrics
^^^^^^^^^^^^^^^^^^^^

Metrics for the calls plugin are exposed through the public ``/plugins/com.mattermost.calls/metrics`` API endpoint.
Metrics for the calls plugin are exposed through the ``/plugins/com.mattermost.calls/metrics`` subpath under the existing Mattermost server metrics endpoint. This is controlled by the :ref:`Listen address for performance <configure/performance-monitoring-configuration-settings:listen address for performance>` configuration setting. It defaults to port ``8067``.

.. note::
On Mattermost versions prior to v9.5, plugin metrics were exposed through the public ``/plugins/com.mattermost.calls/metrics`` API endpoint controlled by the :ref:`Web server listen address <configure/environment-configuration-settings:web server listen address>` configuration setting. This defaults to port ``8065``.

**Process**

Expand Down Expand Up @@ -209,19 +212,52 @@ Metrics for the calls plugin are exposed through the public ``/plugins/com.matte

- ``mattermost_plugin_calls_rtc_sessions_total``: Total number of active RTC sessions.

**Application**

- ``mattermost_plugin_calls_app_handlers_time_bucket``: Time taken to execute app handlers.

- ``mattermost_plugin_calls_app_handlers_time_sum``

- ``mattermost_plugin_calls_app_handlers_time_count``

**Database**

- ``mattermost_plugin_calls_store_ops_total``: Total number of db store operations.
- ``mattermost_plugin_calls_store_methods_time_bucket``: Time taken to execute store methods.

- ``mattermost_plugin_calls_store_methods_time_sum``

- ``mattermost_plugin_calls_store_methods_time_count``
- ``mattermost_plugin_calls_cluster_mutex_grab_time_bucket``: Time taken to grab global mutexes.

- ``mattermost_plugin_calls_cluster_mutex_grab_time_sum``

- ``mattermost_plugin_calls_cluster_mutex_grab_time_count``
- ``mattermost_plugin_calls_cluster_mutex_locked_time_bucket``: Time spent locked in global mutexes.

- ``mattermost_plugin_calls_cluster_mutex_locked_time_sum``

- ``mattermost_plugin_calls_cluster_mutex_locked_time_count``

**WebSocket**

- ``mattermost_plugin_calls_websocket_connections_total``: Total number of active WebSocket connections.
- ``mattermost_plugin_calls_websocket_events_total``: Total number of WebSocket events.

**Jobs**

- ``mattermost_plugin_calls_jobs_live_captions_new_audio_len_ms_bucket``: Duration (in ms) of new audio transcribed for live captions.

- ``mattermost_plugin_calls_jobs_live_captions_new_audio_len_ms_sum``

- ``mattermost_plugin_calls_jobs_live_captions_new_audio_len_ms_count``
- ``mattermost_plugin_calls_jobs_live_captions_pktPayloadCh_buf_full``: Total packets of audio data dropped due to full channel.
- ``mattermost_plugin_calls_jobs_live_captions_window_dropped``: Total windows of audio data dropped due to pressure on the transcriber.

WebRTC service metrics
^^^^^^^^^^^^^^^^^^^^^^

Metrics for the ``rtcd`` service are exposed through the ``/metrics`` API endpoint.
Metrics for the ``rtcd`` service are exposed through the ``/metrics`` API endpoint under the ``rtcd`` API listener controlled by the ``api.http.listen_address`` configuration setting. It defaults to port ``8045``.

**Process**

Expand All @@ -236,24 +272,39 @@ Metrics for the ``rtcd`` service are exposed through the ``/metrics`` API endpoi
- ``rtcd_rtc_conn_states_total``: Total number of RTC connection state changes.
- ``rtcd_rtc_errors_total``: Total number of RTC errors.
- ``rtcd_rtc_rtp_bytes_total``: Total number of sent/received RTP packets in bytes.

- Note: removed as of v0.10.0

- ``rtcd_rtc_rtp_packets_total``: Total number of sent/received RTP packets.

- Note: removed as of v0.10.0

- ``rtcd_rtc_rtp_tracks_total``: Total number of incoming/outgoing RTP tracks.
- ``rtcd_rtc_sessions_total``: Total number of active RTC sessions.
- ``rtcd_rtc_rtp_tracks_writes_time_bucket``: Time taken to write to outgoing RTP tracks.

- Note: added as of v0.10.0
- ``rtcd_rtc_rtp_tracks_writes_time_sum``

- ``rtcd_rtc_sessions_total``: Total number of active RTC sessions.
- ``rtcd_rtc_rtp_tracks_writes_time_count``

**WebSocket**

- ``rtcd_ws_connections_total``: Total number of active WebSocket connections.
- ``rtcd_ws_messages_total``: Total number of received/sent WebSocket messages.

Configuration
^^^^^^^^^^^^^

A sample Prometheus configuration to scrape both plugin and ``rtcd`` metrics could look like this:

.. code::
scrape_configs:
- job_name: node
static_configs:
- targets: ['rtcd-0:9100','rtcd-1:9100', 'calls-offloader-1:9100', 'calls-offloader-2:9100']
- job_name: calls
metrics_path: /plugins/com.mattermost.calls/metrics
static_configs:
- targets: ['app-0:8067','app-1:8067','app-2:8067']
- job_name: rtcd
static_configs:
- targets: ['rtcd-0:8045', 'rtcd-1:8045']
System tunings
~~~~~~~~~~~~~~

Expand Down Expand Up @@ -472,4 +523,4 @@ On the server side, run the following:
sudo tcpdump -n port 8443
This command will output information (i.e. source and destination addresses) for all the network packets being sent or received through port ``8443``. This is a good way to check whether data is getting in and out of the instance and can be used to quickly identify network configuration issues.
This command will output information (i.e. source and destination addresses) for all the network packets being sent or received through port ``8443``. This is a good way to check whether data is getting in and out of the instance and can be used to quickly identify network configuration issues.
10 changes: 8 additions & 2 deletions source/configure/experimental-configuration-settings.rst
Original file line number Diff line number Diff line change
Expand Up @@ -1931,12 +1931,15 @@ Websocket secure port

This setting isn't available in the System Console and can only be set in ``config.json``. Changes to this setting require a server restart before taking effect.

(Optional) This setting defines the port on which the secured WebSocket will listen using the ``wss`` protocol. Defaults to ``443``. When the client attempts to make a WebSocket connection it first checks to see if the page is loaded with HTTPS. If so, it will use the secure WebSocket connection. If not, it will use the unsecure WebSocket connection. IT IS HIGHLY RECOMMENDED PRODUCTION DEPLOYMENTS ONLY OPERATE UNDER HTTPS AND WSS.
(Optional) This setting defines the port on which the secured WebSocket is listening using the ``wss`` protocol. Defaults to ``443``. When the client attempts to make a WebSocket connection it first checks to see if the page is loaded with HTTPS. If so, it will use the secure WebSocket connection. If not, it will use the unsecure WebSocket connection. IT IS HIGHLY RECOMMENDED PRODUCTION DEPLOYMENTS ONLY OPERATE UNDER HTTPS AND WSS.

+------------------------------------------------------------------------------------------------+
| This feature's ``config.json`` setting is ``"WebsocketSecurePort": 443`` with numerical input. |
+------------------------------------------------------------------------------------------------+

.. note::
This is a client only override that doesn't affect the listening port of the server process which is controlled by the :ref:`Web server listen address <configure/web-server-configuration-settings:web server listen address>` setting.

.. config:setting:: exp-websocketport
:displayname: Websocket port (Experimental)
:systemconsole: N/A
Expand All @@ -1949,12 +1952,15 @@ Websocket port

This setting isn't available in the System Console and can only be set in ``config.json``. Changes to this setting require a server restart before taking effect.

(Optional) This setting defines the port on which the unsecured WebSocket will listen using the ``ws`` protocol. Defaults to ``80``. When the client attempts to make a WebSocket connection it first checks to see if the page is loaded with HTTPS. If so, it will use the secure WebSocket connection. If not, it will use the unsecure WebSocket connection. IT IS HIGHLY RECOMMENDED PRODUCTION DEPLOYMENTS ONLY OPERATE UNDER HTTPS AND WSS.
(Optional) This setting defines the port on which the unsecured WebSocket is listening using the ``ws`` protocol. Defaults to ``80``. When the client attempts to make a WebSocket connection it first checks to see if the page is loaded with HTTPS. If so, it will use the secure WebSocket connection. If not, it will use the unsecure WebSocket connection. IT IS HIGHLY RECOMMENDED PRODUCTION DEPLOYMENTS ONLY OPERATE UNDER HTTPS AND WSS.

+----------------------------------------------------------------------------------------+
| This feature's ``config.json`` setting is ``WebsocketPort": 80`` with numerical input. |
+----------------------------------------------------------------------------------------+

.. note::
This is a client only override that doesn't affect the listening port of the server process which is controlled by the :ref:`Web server listen address <configure/web-server-configuration-settings:web server listen address>` setting.

.. config:setting:: exp-enableapiteamdeletion
:displayname: Enable API team deletion (Experimental)
:systemconsole: N/A
Expand Down
14 changes: 13 additions & 1 deletion source/lifecycle/mobile-app-changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,19 @@

This changelog summarizes updates to Mattermost mobile apps releases for [Mattermost](https://mattermost.com).

(release-v2-17-0)=
(release-v2-17-1)=
## 2.17.1 Release
- Release Date: June 25, 2024
- Server Versions Supported: Server v9.5.0+ is required. Self-Signed SSL Certificates are not supported unless the user installs the CA certificate on their device.

### Compatibility
- **Upgrade to server version v9.5.0 or later is required.** Support for server [Extended Support Release](https://docs.mattermost.com/upgrade/extended-support-release.html) (ESR) v8.1.0 has ended and upgrading to server ESR v9.5.0 or later is required. As we innovate and offer newer versions of our mobile apps, we maintain backwards compatibility only with supported server versions. Users who upgrade to the newest mobile apps while being connected to an unsupported server version can be exposed to compatibility issues, which can cause crashes or severe bugs that break core functionality of the app.
- Android operating system 7+ [is required by Google](https://android-developers.googleblog.com/2017/12/improving-app-security-and-performance.html).
- iPhone 6s devices and later with iOS 13.4+ is required.

### Bug Fixes
- Fixed a crash when receiving a push notification on Android when the app was not running.

## 2.17.0 Release
- Release Date: June 14, 2024
- Server Versions Supported: Server v9.5.0+ is required. Self-Signed SSL Certificates are not supported unless the user installs the CA certificate on their device.
Expand Down

0 comments on commit 5a79827

Please sign in to comment.