to select ↑↓ to navigate
mForm Docs

mForm Docs

Open in ChatGPT
Ask ChatGPT about this page
Open in Claude
Ask Claude about this page

Configuration

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.

Last updated 1 month ago
Was this helpful?
Thanks!