Skip to content

Adds Mobile Ephemeral Mode documentation#8984

Open
carlisgg wants to merge 3 commits into
masterfrom
MM-68282-admin-ephemeral-mode
Open

Adds Mobile Ephemeral Mode documentation#8984
carlisgg wants to merge 3 commits into
masterfrom
MM-68282-admin-ephemeral-mode

Conversation

@carlisgg
Copy link
Copy Markdown
Contributor

Summary

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.

Ticket Link

https://mattermost.atlassian.net/browse/MM-68282

- 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.
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented May 18, 2026

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 556d2a11-7a60-4b1c-aee3-343e1dbfb709

📥 Commits

Reviewing files that changed from the base of the PR and between fd40e25 and bdd0549.

📒 Files selected for processing (2)
  • source/deployment-guide/mobile/mobile-security-features.rst
  • source/security-guide/mobile-security.rst
✅ Files skipped from review due to trivial changes (1)
  • source/security-guide/mobile-security.rst
🚧 Files skipped from review as they are similar to previous changes (1)
  • source/deployment-guide/mobile/mobile-security-features.rst

📝 Walkthrough

Walkthrough

This pull request adds documentation for Mobile Ephemeral Mode, a mobile security feature that manages cached data lifecycle on Mattermost mobile clients. The feature is documented across four key guides: feature definition, administrator configuration, security context, and product messaging.

Changes

Mobile Ephemeral Mode Documentation

Layer / File(s) Summary
Mobile Ephemeral Mode feature definition
source/deployment-guide/mobile/mobile-security-features.rst
Core technical documentation explaining the feature's purpose, the Delete/Purge/Wipe operations and their triggers, disconnection timeout and offline persistence timer behaviour, restart persistence, zero-persistence mode, and audit logging reference.
Administrator configuration settings
source/administration-guide/configure/environment-configuration-settings.rst
Four new mobile security configuration settings documented with System Console paths, config.json references, environment variables, defaults, and semantics for enabling ephemeral mode, disconnection timeout (seconds), offline persistence timer (hours), and automatic cache cleanup maximum age (days).
Security context and implications
source/security-guide/mobile-security.rst
Mobile Ephemeral Mode added to the security guide, explaining timer-based on-device cached content deletion when offline, administrator configuration of maximum cache age and offline persistence, and server-initiated wipe on access revocation.
Product messaging and use case integration
source/use-case-guide/mission-ready-mobile.rst
Mission-Ready Mobile documentation updated to include ephemeral data lifecycle controls in security protections, BYOD benefits pairing AppConfig policies with Mobile Ephemeral Mode for automatic cache purging, and expanded features list highlighting admin-defined retention limits and deletion audit logging.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately and concisely summarizes the main change: adding Mobile Ephemeral Mode documentation across multiple files.
Description check ✅ Passed The description is directly related to the changeset, detailing the addition of Mobile Ephemeral Mode documentation across multiple sections and guides.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch MM-68282-admin-ephemeral-mode

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 4

🧹 Nitpick comments (1)
source/deployment-guide/mobile/mobile-security-features.rst (1)

112-113: ⚡ Quick win

Consider clarifying timer relationship earlier for reader flow.

The Disconnection Timeout is introduced after the operations table, but it's a prerequisite concept for understanding when the Offline Persistence Timer (mentioned in the Purge operation) begins. For Novice Nate, this ordering might cause confusion about whether Disconnection Timeout is a fourth configuration setting or how it relates to the three operations.

Consider either briefly mentioning the timer relationship before the table or adding a note in the Purge row that references the Disconnection Timeout grace period.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@source/deployment-guide/mobile/mobile-security-features.rst` around lines 112
- 113, Clarify the relationship between the Disconnection Timeout and the
Offline Persistence Timer by either adding a brief sentence before the
operations table that states "Disconnection Timeout is a grace period after
which the Offline Persistence Timer begins if no reconnection occurs," or by
appending a short note to the Purge operation row in the operations table that
reads "Note: Purge countdown starts only after the Disconnection Timeout (grace
period) elapses." Update the text around the operations table/Purge row so the
terms "Disconnection Timeout", "Offline Persistence Timer", and "Purge" are
explicitly linked for readers.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In
`@source/administration-guide/configure/environment-configuration-settings.rst`:
- Around line 4449-4459: The wording for the 0-value trigger is inconsistent:
change the phrase "Set to **0** for immediate purge on disconnect." in the
"Offline persistence timer" section to match the earlier wording "after the
Disconnection Timeout elapses" so both references use the same trigger language;
update the sentence near the numerical input (related to NativeAppSettings >
MobileOfflinePersistenceTimerHours and
MM_NATIVEAPPSETTINGS_MOBILEOFFLINEPERSISTENCETIMERHOURS) to read "Set to **0**
for immediate purge after the Disconnection Timeout elapses."

In `@source/deployment-guide/mobile/mobile-security-features.rst`:
- Line 101: Replace the typo in the table header string "What happensoption"
with "What happens" by updating the header cell that currently contains "What
happensoption" in the mobile-security-features table; ensure only the header
text is changed (leave surrounding table markup/columns intact).
- Line 107: Replace the iOS-specific term "keychain" in the sentence "All
persisted content, metadata, and files are removed. Authentication credentials
and tokens are preserved in the keychain, so users can reconnect without
re-authenticating." with platform-neutral wording such as "the platform
credential store (e.g., iOS Keychain, Android Keystore)" or explicitly list both
"iOS Keychain and Android Keystore" so the doc is cross-platform accurate and
clear.

In `@source/security-guide/mobile-security.rst`:
- Line 102: The sentence claiming a "server-initiated wipe ... removes all data,
including credentials, even before the device reconnects" overstates
capabilities for offline devices; update the wording around the
"server-initiated wipe" phrase so it conditions the wipe on the device
reconnecting (e.g., state that the wipe will be applied once the device next
reconnects or that offline devices will be wiped on next contact), and keep the
existing reference to "Mobile Ephemeral Mode" so administrators (Veteran Vince)
understand the reconnection-dependent enforcement model rather than implying
immediate remote action while disconnected.

---

Nitpick comments:
In `@source/deployment-guide/mobile/mobile-security-features.rst`:
- Around line 112-113: Clarify the relationship between the Disconnection
Timeout and the Offline Persistence Timer by either adding a brief sentence
before the operations table that states "Disconnection Timeout is a grace period
after which the Offline Persistence Timer begins if no reconnection occurs," or
by appending a short note to the Purge operation row in the operations table
that reads "Note: Purge countdown starts only after the Disconnection Timeout
(grace period) elapses." Update the text around the operations table/Purge row
so the terms "Disconnection Timeout", "Offline Persistence Timer", and "Purge"
are explicitly linked for readers.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: b77a0c74-36e1-42d2-a77f-50a832396e07

📥 Commits

Reviewing files that changed from the base of the PR and between 6140523 and a67a984.

📒 Files selected for processing (4)
  • source/administration-guide/configure/environment-configuration-settings.rst
  • source/deployment-guide/mobile/mobile-security-features.rst
  • source/security-guide/mobile-security.rst
  • source/use-case-guide/mission-ready-mobile.rst

Comment thread source/deployment-guide/mobile/mobile-security-features.rst Outdated
Comment thread source/deployment-guide/mobile/mobile-security-features.rst Outdated
Comment thread source/security-guide/mobile-security.rst Outdated
@github-actions
Copy link
Copy Markdown
Contributor

Newest code from mattermost has been published to preview environment for Git SHA a67a984

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds documentation for Mobile Ephemeral Mode across Mattermost mobile security, configuration, and mission-ready mobile use-case content.

Changes:

  • Adds a Mobile Ephemeral Mode explanation to mobile security feature docs.
  • Adds related configuration settings under Environment > Mobile Security.
  • Updates security guide and mission-ready mobile use-case messaging to reference ephemeral lifecycle controls.

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 4 comments.

File Description
source/deployment-guide/mobile/mobile-security-features.rst Adds the primary Mobile Ephemeral Mode feature overview and operation table.
source/administration-guide/configure/environment-configuration-settings.rst Adds Mobile Ephemeral Mode configuration settings and timer behavior notes.
source/security-guide/mobile-security.rst Adds a security-guide summary of Mobile Ephemeral Mode.
source/use-case-guide/mission-ready-mobile.rst Updates mission-ready mobile messaging to include ephemeral data lifecycle controls.
Comments suppressed due to low confidence (2)

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

  • Veteran Vince (Friction): This says any timer expiry purges active cached content, but the linked feature page distinguishes Delete (Auto Cache Cleanup removes only data older than the threshold) from Purge (Offline Persistence Timer removes all persisted content). Admins could misconfigure retention if this summary implies both timers perform the same purge operation; align this text with the Delete/Purge/Wipe terminology.
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.

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

  • Novice Nate (Polish): "Immediate purge on disconnect" is ambiguous because the setting description above says a value of 0 purges only after the Disconnection Timeout elapses. Use the same wording here so admins don't expect the purge to happen at the moment the WebSocket drops.
| Set to **0** for immediate purge on disconnect.      |                                                                                                                     |

Comment thread source/deployment-guide/mobile/mobile-security-features.rst Outdated
Comment thread source/security-guide/mobile-security.rst Outdated
Comment thread source/use-case-guide/mission-ready-mobile.rst
@github-actions
Copy link
Copy Markdown
Contributor

Newest code from mattermost has been published to preview environment for Git SHA fd40e25

@github-actions
Copy link
Copy Markdown
Contributor

Newest code from mattermost has been published to preview environment for Git SHA bdd0549

@jwilander jwilander requested a review from tscruggs May 19, 2026 14:02
@Combs7th Combs7th added 1: Dev Review Requires review by a core commiter 2: Editor Review Requires review by an editor labels May 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

1: Dev Review Requires review by a core commiter 2: Editor Review Requires review by an editor

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants