Managed App Configuration
Front Desk reads the standard managed app configuration that an MDM server delivers with a managed app. Use it to put signs on your devices, to open the app straight into full screen on kiosks, and to lock editing on shared devices.
How to send it
- Deploy Front Desk as a managed app. Its bundle ID is
com.maximuz.frontdesk. - In your MDM server, open the configuration settings for the app. Servers name this differently: App Configuration, Managed App Configuration or Configuration Dictionary.
- Paste in a configuration. Most servers accept a property list dictionary, which the builder below writes for you. A server that only offers a form of single values can use the simple keys marked “shortcut” in the key tables.
Every key is optional. Booleans and numbers may also be sent as text. The app applies a new configuration within a minute, without being relaunched.
Build a configuration
Set the options and add your signs; the configuration underneath is rewritten as you go. It starts from an example that opens in full screen and rotates between a welcome sign and a guest Wi‑Fi sign. Nothing you enter leaves this page.
Your configuration
<dict>
<key>autoStart</key>
<true/>
<key>holdToExit</key>
<true/>
<key>rotationInterval</key>
<integer>15</integer>
<key>signs</key>
<array>
<dict>
<key>type</key>
<string>welcome</string>
<key>id</key>
<string>lobby</string>
<key>palette</key>
<string>ocean</string>
<key>title</key>
<string>Welcome to Acme</string>
<key>subtitle</key>
<string>Please sign in at reception</string>
</dict>
<dict>
<key>type</key>
<string>wifi</string>
<key>id</key>
<string>guest-wifi</string>
<key>ssid</key>
<string>Acme Guest</string>
<key>password</key>
<string>visitor-2026</string>
</dict>
</array>
</dict>
Also available: a fuller example with four signs, and a spec file in the AppConfig Community format for servers that build a form from one. The spec file covers the top-level keys only, because that format can't describe a list of signs.
Top-level keys
| Key | Type | What it does |
|---|---|---|
signs | array of dictionaries | The signs to show. They appear first in the app and can't be edited or deleted on the device. |
autoStart | boolean | Open in full screen at launch. Shows startSign, or rotates through the signs included in rotation. |
startSign | string | The id of the sign to open with. |
rotationInterval | integer | Seconds each sign stays up while rotating, from 3 to 3600. Overrides the setting on the device. |
holdToExit | boolean | Require a touch and hold to bring up the full-screen controls, so a passing tap can't close a sign. Overrides the setting on the device. |
lockEditing | boolean | Hide signs made on the device, and all editing. |
welcomeTitle, welcomeSubtitle | string | Shortcut: adds a welcome sign. |
wifiSSID, wifiPassword, wifiSecurity | string | Shortcut: adds a guest Wi‑Fi sign. Security is WPA, WEP or none. |
messageText | string | Shortcut: adds a sign with this text as large as the screen allows. |
Keys for each sign
Each entry in signs is a dictionary. These keys apply to every kind of sign:
| Key | What it does |
|---|---|
type | Required. One of welcome, hours, nowServing, status, wifi, backSoon, message. |
id | A stable name for the sign, used by startSign and in the status the app reports. Defaults to sign1, sign2 and so on. |
name | The label shown in the app's library. |
palette | Colors: midnight, ocean, forest, plum, rose, sunrise, graphite, black, paper, sand, mint or sky. |
font | standard, rounded, serif or mono. |
rotation | Boolean. Include the sign in rotation. Default true. |
These depend on the type:
| Type | Keys |
|---|---|
welcome | title, subtitle, footer, symbol (an SF Symbol name; empty for none) |
hours | title, note, showStatus (boolean: the live open or closed badge), and hours: a dictionary with the keys mon, tue, wed, thu, fri, sat, sun and values such as 09:00-17:30 or closed. Days left out are closed. A closing time earlier than the opening time runs past midnight. |
nowServing | label, prefix, number, footer, chime (boolean), announce (boolean: speak the number aloud) |
status | title, tapToToggle and showAlternate (booleans), and for each of the two states: primaryLabel, primaryDetail, primaryColor, primarySymbol, and the same four starting with alternate. Colors: green, red, amber, blue, gray. |
wifi | ssid (required), password, security (WPA, WEP or none), hidden and showPassword (booleans), title, instructions |
backSoon | title, message |
message | text, scrolling (boolean), speed (slow, medium or fast) |
Staff can still work a managed sign: call the next number, flip a status, set a return time. Those changes stay on the device until you send different content for that sign.
Checking that it worked
On the device, open Front Desk's settings. Under Device Management it shows “Managed by your organization”, how many signs it received, and a warning for each entry it had to skip, for example a sign with an unknown type. One bad entry never stops the rest from loading.
What the app reports back
While a configuration is present, the app publishes managed app feedback that your server can read:
| Key | Meaning |
|---|---|
appVersion | The app's version. |
managedSignCount | How many signs from the configuration were accepted. |
deviceSignCount | How many signs were made on the device. |
displayedSign | The id of the sign on screen, prefixed managed. for signs from the configuration; empty when no sign is showing. |
configurationWarnings | One message for each entry that was skipped. |
Kiosks
For an unattended sign, combine autoStart and holdToExit with Single App Mode in your MDM server, so the device stays in Front Desk and opens on your signs after a restart. Front Desk keeps the screen awake while a sign is showing.