Skip to content

Commit 7ecebc6

Browse files
carlisggesethna
andauthored
Adds Mobile Ephemeral Mode documentation (#8984)
* adds Mobile Ephemeral Mode documentation - new section under Mobile App Deployment > Mobile security features explaining Mobile Ephemeral Mode feature and what it means on the server and mobile client. - entry added to the Security Guide > Mobile Security about Mobile Ephemeral Mode. - Added configurations options related to Mobile Ephemeral Mode to the Administration Guide under Environment configuration settings. - Updated Use cases. * fixes typo * improves documentation for Mobile Ephemeral Mode * Update mobile-security-features.rst --------- Co-authored-by: Eric Sethna <14333569+esethna@users.noreply.github.com>
1 parent 5a407fa commit 7ecebc6

4 files changed

Lines changed: 118 additions & 2 deletions

File tree

source/administration-guide/configure/environment-configuration-settings.rst

Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4379,6 +4379,100 @@ Prevent screen capture
43794379

43804380
Changing this configuration setting takes effect when mobile users restart their Mattermost mobile app or log out and log back in.
43814381

4382+
Mobile ephemeral mode
4383+
~~~~~~~~~~~~~~~~~~~~~~
4384+
4385+
.. include:: ../../_static/badges/ent-adv.rst
4386+
:start-after: :nosearch:
4387+
4388+
See :ref:`Mobile Ephemeral Mode in mobile security features <deployment-guide/mobile/mobile-security-features:mobile ephemeral mode>` for a full description of how the timers and operations interact.
4389+
4390+
These settings apply globally to all mobile users. Changes are delivered to connected devices in real time; offline devices continue operating under their last-known configuration until they reconnect. Timer state persists across app and device restarts.
4391+
4392+
When a timer expires, active cached content such as posts and file previews is purged, and the app notifies the user that data was removed due to policy enforcement. After a purge, users re-sync from the server on reconnection — server URLs are recoverable from keychain entries so server access is not lost.
4393+
4394+
.. config:setting:: mobile-enable-ephemeral-mode
4395+
:displayname: Enable Mobile Ephemeral Mode (Mobile Security)
4396+
:systemconsole: Environment > Mobile Security
4397+
:configjson: .NativeAppSettings.MobileEnableEphemeralMode
4398+
:environment: MM_NATIVEAPPSETTINGS_MOBILEENABLEEPHEMERALMODE
4399+
:description: Controls whether mobile clients enforce server-configured ephemeral data policies. Default is **true**.
4400+
4401+
- **true**: **(Default)** Mobile clients enforce the server-configured ephemeral data policies.
4402+
- **false**: Ephemeral data policies are not enforced on mobile clients.
4403+
4404+
Enable Mobile Ephemeral Mode
4405+
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
4406+
4407+
+------------------------------------------------------+--------------------------------------------------------------------------------------------------+
4408+
| Controls whether mobile clients enforce the | - System Config path: **Environment > Mobile Security** |
4409+
| server-configured ephemeral data policies. | - ``config.json`` setting: ``NativeAppSettings`` > ``MobileEnableEphemeralMode`` > ``true`` |
4410+
| | - Environment variable: ``MM_NATIVEAPPSETTINGS_MOBILEENABLEEPHEMERALMODE`` |
4411+
| - **true**: **(Default)** Ephemeral data policies | |
4412+
| are enforced. | |
4413+
| - **false**: Ephemeral data policies are not | |
4414+
| enforced on mobile clients. | |
4415+
+------------------------------------------------------+--------------------------------------------------------------------------------------------------+
4416+
4417+
.. config:setting:: mobile-disconnection-timeout-seconds
4418+
:displayname: Disconnection Timeout (Mobile Security)
4419+
:systemconsole: Environment > Mobile Security
4420+
:configjson: .NativeAppSettings.MobileDisconnectionTimeoutSeconds
4421+
:environment: MM_NATIVEAPPSETTINGS_MOBILEDISCONNECTIONTIMEOUTSECONDS
4422+
4423+
Grace period after the WebSocket drops before the device is considered offline. Default is **60** seconds. Values below 5 are not recommended.
4424+
4425+
Disconnection timeout
4426+
^^^^^^^^^^^^^^^^^^^^^
4427+
4428+
+------------------------------------------------------+------------------------------------------------------------------------------------------------------------------+
4429+
| Grace period in seconds after the WebSocket drops | - System Config path: **Environment > Mobile Security** |
4430+
| before the device is considered offline. Once | - ``config.json`` setting: ``NativeAppSettings`` > ``MobileDisconnectionTimeoutSeconds`` > ``60`` |
4431+
| elapsed, the Offline Persistence Timer begins | - Environment variable: ``MM_NATIVEAPPSETTINGS_MOBILEDISCONNECTIONTIMEOUTSECONDS`` |
4432+
| counting down. | |
4433+
| | |
4434+
| Numerical input in seconds. Default is **60**. | |
4435+
| Values below 5 are not recommended. | |
4436+
+------------------------------------------------------+------------------------------------------------------------------------------------------------------------------+
4437+
4438+
.. config:setting:: mobile-offline-persistence-timer-hours
4439+
:displayname: Offline Persistence Timer (Mobile Security)
4440+
:systemconsole: Environment > Mobile Security
4441+
:configjson: .NativeAppSettings.MobileOfflinePersistenceTimerHours
4442+
:environment: MM_NATIVEAPPSETTINGS_MOBILEOFFLINEPERSISTENCETIMERHOURS
4443+
4444+
How long cached content is retained after the device goes offline. Default is **2** hours. Set to **0** for immediate purge when the Disconnection Timeout elapses.
4445+
4446+
Offline persistence timer
4447+
^^^^^^^^^^^^^^^^^^^^^^^^^
4448+
4449+
+------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------+
4450+
| How long cached content is retained after the | - System Config path: **Environment > Mobile Security** |
4451+
| device is considered offline, in hours. | - ``config.json`` setting: ``NativeAppSettings`` > ``MobileOfflinePersistenceTimerHours`` > ``2`` |
4452+
| | - Environment variable: ``MM_NATIVEAPPSETTINGS_MOBILEOFFLINEPERSISTENCETIMERHOURS`` |
4453+
| Numerical input in hours. Default is **2**. | |
4454+
| Set to **0** for immediate purge on disconnect. | |
4455+
+------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------+
4456+
4457+
.. config:setting:: mobile-auto-cache-cleanup-days
4458+
:displayname: Auto Cache Cleanup (Mobile Security)
4459+
:systemconsole: Environment > Mobile Security
4460+
:configjson: .NativeAppSettings.MobileAutoCacheCleanupDays
4461+
:environment: MM_NATIVEAPPSETTINGS_MOBILEAUTOCACHECLEANUPDAYS
4462+
4463+
Maximum age for content cached on the device, regardless of connection status. Default is **7** days. Set to **0** for zero-persistence mode.
4464+
4465+
Auto cache cleanup
4466+
^^^^^^^^^^^^^^^^^^
4467+
4468+
+------------------------------------------------------+----------------------------------------------------------------------------------------------------------+
4469+
| Maximum age in days for content cached on the | - System Config path: **Environment > Mobile Security** |
4470+
| device, regardless of connection status. | - ``config.json`` setting: ``NativeAppSettings`` > ``MobileAutoCacheCleanupDays`` > ``7`` |
4471+
| | - Environment variable: ``MM_NATIVEAPPSETTINGS_MOBILEAUTOCACHECLEANUPDAYS`` |
4472+
| Numerical input in days. Default is **7**. | |
4473+
| Set to **0** for zero-persistence mode. | |
4474+
+------------------------------------------------------+----------------------------------------------------------------------------------------------------------+
4475+
43824476
.. config:setting:: mobile-enable-secure-file-preview
43834477
:displayname: Enable secure file preview on mobile (File sharing)
43844478
:systemconsole: Site Configuration > File sharing and downloads

source/deployment-guide/mobile/mobile-security-features.rst

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,20 @@ This approach allows organizations to extend zero-trust and data loss prevention
100100

101101
See the :doc:`Microsoft Intune MAM configuration guide </deployment-guide/mobile/configure-microsoft-intune-mam>` for deployment and configuration details.
102102

103+
Mobile Ephemeral Mode
104+
---------------------
105+
106+
Mobile applications typically cache messages, files, and attachments on-device indefinitely. Two security concerns drive the need for administrator-controlled data lifecycle management on mobile devices:
107+
108+
- **Unbounded sensitive data accumulation.** Without data-age controls, weeks or months of sensitive content can accumulate on any device a user has logged into — well beyond what operational need justifies.
109+
- **Offline exposure after device loss.** Remotely wiping a device requires it to be reachable — the condition least likely to hold when a device is lost, stolen, or in an adversarial environment. Unmanaged or personally-owned devices may not be enrolled in MDM at all, leaving cached content with no remote deletion path.
110+
111+
Mobile Ephemeral Mode addresses both concerns by giving administrators direct, server-side control over how long data persists on mobile devices. The app enforces this policy locally — including while offline and across app and device restarts — so data is removed based on elapsed time, not device reachability.
112+
113+
Mobile Ephemeral Mode generates an :ref:`audit log <administration-guide/manage/logging:audit logging>` event for each delete, purge, and wipe operation. Because these operations can execute on a device that is unreachable — where no administrator has direct visibility — audit logging provides verifiable proof that ephemeral policies were enforced. This supports compliance requirements for data lifecycle management and destruction accountability. Events that occur while the device is offline are reported to the server on reconnection.
114+
115+
See the :ref:`Mobile Ephemeral Mode configuration settings <administration-guide/configure/environment-configuration-settings:mobile ephemeral mode>` to configure these controls.
116+
103117
Mobile data isolation
104118
------------------------
105119

source/security-guide/mobile-security.rst

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,4 +103,11 @@ Burn-on-read messages reduce the window of exposure for sensitive content by aut
103103

104104
Administrators can enable burn-on-read messaging and set the burn-on-read duration to align with organizational policies. Learn more about :ref:`sending burn-on-read messages <end-user-guide/collaborate/send-messages:send burn-on-read messages>` and :ref:`enabling burn-on-read messages <administration-guide/configure/site-configuration-settings:enable burn-on-read messages>`.
105105

106+
Mobile Ephemeral Mode
107+
---------------------
108+
109+
Mobile applications typically cache messages, files, and attachments indefinitely. Without data-age controls or a device-side deletion mechanism, a lost or stolen device retains all cached content — and MDM remote wipe cannot help when the device is offline. Mobile Ephemeral Mode addresses this by giving administrators timer-based controls that run on-device, independently of server connectivity, ensuring data is removed based on elapsed time rather than device reachability.
110+
111+
Administrators can configure the maximum age of cached content and how long data persists after a device goes offline. A server-initiated wipe triggered by access revocation removes all data, including credentials, as soon as the device receives the command. Learn more about :ref:`Mobile Ephemeral Mode <deployment-guide/mobile/mobile-security-features:mobile ephemeral mode>`.
112+
106113
`Book a live demo <https://mattermost.com/request-demo/>`_ or `talk to a Mattermost expert <https://mattermost.com/contact-sales/>`_ to explore tailored solutions for your organization's secure collaboration needs. Or try Mattermost yourself with a `1-hour preview <https://mattermost.com/sign-up/>`_ for instant access to a live sandbox environment.

source/use-case-guide/mission-ready-mobile.rst

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ Mission environments demand secure, reliable mobile collaboration, from intellig
55

66
Mattermost provides a secure, mission-ready mobile platform built for defense, law enforcement, and public sector operations. Optimized for low-bandwidth and disconnected conditions, Mattermost ensures secure communication on government-issued devices while enabling compliant collaboration on personal phones—without reliance on consumer apps or invasive controls.
77

8-
With protections including ID-only push notifications, biometric authentication, jailbreak detection, and full MDM/EMM support, Mattermost delivers control, compliance, and usability across a range of challenging field conditions.
8+
With protections including ID-only push notifications, biometric authentication, jailbreak detection, ephemeral data lifecycle controls, and full MDM/EMM support, Mattermost delivers control, compliance, and usability across a range of challenging field conditions.
99

1010
.. image:: /images/mission-ready-mobile.png
1111
:alt: An infographic illustrating "Security-Optimized Mobility" with two devices side-by-side: A Mattermost server (on the left) and a mobile device (on the right). The Mattermost server displays a list of security features, including "Zero Trust Security (Channel ABAC, Files ABAC)," "Secure File Viewer," "TLS Data in Transit (Post Quantum)," "Authentication and Access Control (MFA, SSO)," "Data Spillage Handling," and more, with asterisks (*) indicating functionality scheduled for release later in 2025. On the right, the mobile device mirrors corresponding security features, such as "Secure File Viewer," "TLS," "Burn on Read," "End-to-End Encryption," "Biometric Authentication," and others, with blue arrows connecting the related features on the server and the mobile device, signifying seamless integration and support for advanced security across these endpoints.
@@ -32,7 +32,7 @@ When personal devices are the only available channel—whether in partner nation
3232

3333
**Benefits**
3434

35-
- **Enable trusted communications on BYOD** using lightweight AppConfig policies with :doc:`EMM optionality </deployment-guide/mobile/deploy-mobile-apps-using-emm-provider>` that avoids intrusive control while ensuring essential security baselines.
35+
- **Enable trusted communications on BYOD** using lightweight AppConfig policies with :doc:`EMM optionality </deployment-guide/mobile/deploy-mobile-apps-using-emm-provider>` that avoids intrusive control while ensuring essential security baselines. Pair with :ref:`Mobile Ephemeral Mode <deployment-guide/mobile/mobile-security-features:mobile ephemeral mode>` to enforce admin-controlled data lifecycle — automatically purging cached messages without requiring MDM connectivity.
3636
- **Prevent unauthorized data sharing**: Mitigate leakage with :ref:`screenshot and screen recording prevention <deployment-guide/mobile/mobile-security-features:screenshot and screen recording prevention>` and :ref:`jailbreak/root detection <deployment-guide/mobile/mobile-security-features:jailbreak and root detection>` that block high-risk mobile behaviors.
3737
- **Secure access without cloud dependency** via :ref:`self-hosted deployments <deployment-guide/server/server-deployment-planning:deployment options>` or :doc:`air-gapped infrastructures </deployment-guide/reference-architecture/deployment-scenarios/air-gapped-deployment>` that prevent sensitive data from touching public networks.
3838
- **Deliver rapid alerts with low bandwidth impact** using :ref:`ID-only push notifications <administration-guide/configure/environment-configuration-settings:id-only push notifications>`, ideal for DDIL (disconnected, intermittent, low-bandwidth) conditions.
@@ -48,6 +48,7 @@ Mattermost on mobile is hardened to operate under mission-grade security expecta
4848
- **Zero Trust security architecture** with channel- and file-level :doc:`attribute-based access control (ABAC) </administration-guide/manage/admin/attribute-based-access-control>`.
4949
- **TLS with post-quantum readiness** and end-to-end* :doc:`encryption options </security-guide/security-guide-index>` for high-assurance deployments.
5050
- **Burn-on-read messaging**: Use :ref:`secure file viewers <security-guide/mobile-security:secure file preview>`, :ref:`burn on read messaging <end-user-guide/collaborate/send-messages:send burn-on-read messages>`, and advanced data spillage controls* to protect sensitive information and minimize persistent data exposure.
51+
- **Ephemeral data lifecycle controls**: :ref:`Mobile Ephemeral Mode <deployment-guide/mobile/mobile-security-features:mobile ephemeral mode>` enforces admin-defined retention limits on approved personal devices — automatically deleting cached content by data age and time offline, with audit logging of deletion events reported to the server on reconnection.
5152
- **DoD STIG container support** with FIPS 140-3 validation*, and :ref:`audit logging <administration-guide/manage/logging:audit logging>` to ensure deployment compliance in regulated missions.
5253
- **Isolated mobile sessions** from host operating systems by partnering with platforms like Hypori in high-assurance BYOD scenarios.
5354

0 commit comments

Comments
 (0)