Managed App Configuration

For administrators who deploy Front Desk with a device management (MDM) server.

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

  1. Deploy Front Desk as a managed app. Its bundle ID is com.maximuz.frontdesk.
  2. In your MDM server, open the configuration settings for the app. Servers name this differently: App Configuration, Managed App Configuration or Configuration Dictionary.
  3. 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

KeyTypeWhat it does
signsarray of dictionariesThe signs to show. They appear first in the app and can't be edited or deleted on the device.
autoStartbooleanOpen in full screen at launch. Shows startSign, or rotates through the signs included in rotation.
startSignstringThe id of the sign to open with.
rotationIntervalintegerSeconds each sign stays up while rotating, from 3 to 3600. Overrides the setting on the device.
holdToExitbooleanRequire 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.
lockEditingbooleanHide signs made on the device, and all editing.
welcomeTitle, welcomeSubtitlestringShortcut: adds a welcome sign.
wifiSSID, wifiPassword, wifiSecuritystringShortcut: adds a guest Wi‑Fi sign. Security is WPA, WEP or none.
messageTextstringShortcut: 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:

KeyWhat it does
typeRequired. One of welcome, hours, nowServing, status, wifi, backSoon, message.
idA stable name for the sign, used by startSign and in the status the app reports. Defaults to sign1, sign2 and so on.
nameThe label shown in the app's library.
paletteColors: midnight, ocean, forest, plum, rose, sunrise, graphite, black, paper, sand, mint or sky.
fontstandard, rounded, serif or mono.
rotationBoolean. Include the sign in rotation. Default true.

These depend on the type:

TypeKeys
welcometitle, subtitle, footer, symbol (an SF Symbol name; empty for none)
hourstitle, 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.
nowServinglabel, prefix, number, footer, chime (boolean), announce (boolean: speak the number aloud)
statustitle, 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.
wifissid (required), password, security (WPA, WEP or none), hidden and showPassword (booleans), title, instructions
backSoontitle, message
messagetext, 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:

KeyMeaning
appVersionThe app's version.
managedSignCountHow many signs from the configuration were accepted.
deviceSignCountHow many signs were made on the device.
displayedSignThe id of the sign on screen, prefixed managed. for signs from the configuration; empty when no sign is showing.
configurationWarningsOne 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.