Mobile Configuration is a Single doctype: one row per site, System Manager permission only. Find it by searching "Mobile Configuration" in the desk.
It is the one place that decides whether a mobile app is enabled, whether it runs offline-first, which doctypes it shows, and what version it requires.
Fields
| Field | Type | Notes |
|---|---|---|
enabled |
Check | Master switch. When off, the app is blocked at launch via app_status, and offline_enabled is forced false. |
offline_enabled |
Check ("Offline Mode Enabled") | Visible only when enabled is on. Decides whether the SDK runs offline-first or as a thin online client. |
package_name |
Data | Mandatory when enabled is on. Checked by FrappeAppGuard against the installed app's package name. |
minimum_app_version |
Data | Mandatory when enabled is on. Drives the force-update screen. |
maintenance_mode |
Check | Puts the app into maintenance. |
maintenance_message |
Small Text | Shown to users while maintenance_mode is on. |
| Forms Configuration | Table (Mobile Configuration Form) | One row per doctype exposed in the mobile app. |
mobile_error_log_retention_days |
Int | Default 30. Mobile Error Log rows older than this are purged daily. 0 disables purging. |
What the app reads from it
Every launch, FrappeAppGuard calls mobile_auth.app_status and reads enabled, package_name, and minimum_app_version from this doctype. See App status and force-update.
On login, the response carries offline_enabled and mobile_form_names (built from Forms Configuration), alongside the auth tokens, roles, and permissions.
Forms Configuration
Each row in the child table is one doctype the mobile app shows. A row has:
mobile_workspace_item: Link to the DocType.workspace_group_name: Link to a Mobile Workspace Group, for grouping doctypes in the app's workspace.doctype_icon: icon shown in the app.order: sort position within its group.doctype_meta_modified_at: tracks when the doctype's metadata last changed, so the app knows to refresh its cached form definition.
A doctype with no row here does not appear in the app, regardless of the user's Frappe permissions on it.
Maintenance mode
Tick maintenance_mode and every app reads it on the next app_status call. Users see maintenance_message instead of the app. Untick to bring the app back.
Error log retention
Failed pushes get captured server-side in Mobile Error Log, one row per unique failure signature with the last 5 occurrences attached. mobile_error_log_retention_days controls how long those rows live before a daily job purges them. Set it to 0 if you want to keep them indefinitely.