Skip to content

Migrating Support 2.x to 3.x

Jordy Witteman edited this page Oct 15, 2025 · 1 revision

Migration to new structure

The new structure introduced in Support App 3.0 has the following benefits:

  • Flexibility to define rows
  • Configure unlimited number of items, including Extensions
  • Supported by Configurator Mode

The previous structure was based on “hard-coded" keys for every item, coming with more complexity, maintenance, and being error-prone, which was a limiting factor for both administrators and developers to further develop the app without creating many more keys.

New structure hierarchy

The new structure is defined in the Rows key, which consists of an array of rows. Each row is an array of Items. Each item is a dictionary containing the item properties.

Root (Configuration)
└── Rows (Array)
    ├── Row (Dictionary)
    │   └── Items (Array)
    │       ├── Item (Dictionary)
    │       │   ├── Type (Required)
    │       │   ├── Title
    │       │   ├── Subtitle
    │       │   ├── Symbol
    │       │   ├── Action
    │       │   ├── ActionType
    │       │   ├── ExtensionID
    │       │   └── OnAppearAction
    │       ├── Item (Dictionary)
    │       │   ├── Type (Required)
    │       │   ├── Title
    │       │   ├── Subtitle
    │       │   ├── Symbol
    │       │   ├── Action
    │       │   ├── ActionType
    │       │   ├── ExtensionID
    │       │   └── OnAppearAction
    │       └── …
    │
    ├── Row (Dictionary)
    │   └── Items (Array)
    │       └── Item (Dictionary)
    │           ├── Type (Required)
    │           ├── Title
    │           ├── Subtitle
    │           ├── Symbol
    │           ├── Action
    │           ├── ActionType
    │           ├── ExtensionID
    │           └── OnAppearAction
    │
    └── …

Do I have to migrate?

Although we recommend migrating for new features and as legacy keys are deprecated, there should not be any breaking changes when using Support App 3.x with your 2.x configuration.

What triggers the new structure?

The Rows key takes precedence over any legacy structure preference key. As soon as the Rows key is not empty, Support App automatically switches over to the new structure. All legacy structure preference keys are ignored and will not be shown anymore until you remove the Rows key.

How to migrate?

There are a few ways to migrate your current configuration to the new structure:

  • Configurator Mode: This feature allows you to recreate your configuration in a visual editor right within Support App and export to a valid property list or Configuration Profile. This is usually the easiest and quickest way.
  • Jamf Manifest: When you use Jamf Pro, you can use the updated Jamf Manifest which allows you to recreate your current configuration in the Jamf Pro user interface.
  • Manual editing: Manually extracting your current configuration and edit in a code editor.

Deprecated keys

All keys belonging to the legacy structure are deprecated and we recommend migrating to the new more flexible structure. At some point in the future, the deprecated keys will be removed. There is no timeline and there is no intention to do this anytime soon. When the time comes, this will be communicated in beta release notes.

HideSecondRowInfoItems
HideThirdRowInfoItems
HideFirstRowButtons
HideSecondRowButtons
InfoItemOne
InfoItemTwo
InfoItemThree
InfoItemFour
InfoItemFive
InfoItemSix
FirstRowTitleLeft
FirstRowSubtitleLeft
FirstRowTypeLeft
FirstRowLinkLeft
FirstRowSymbolLeft
FirstRowTitleMiddle
FirstRowSubtitleMiddle
FirstRowTypeMiddle
FirstRowLinkMiddle
FirstRowSymbolMiddle
FirstRowTitleRight
FirstRowSubtitleRight
FirstRowTypeRight
FirstRowLinkRight
FirstRowSymbolRight
SecondRowTitleLeft
SecondRowSubtitleLeft
SecondRowTypeLeft
SecondRowLinkLeft
SecondRowSymbolLeft
SecondRowTitleMiddle
SecondRowSubtitleMiddle
SecondRowTypeMiddle
SecondRowLinkMiddle
SecondRowSymbolMiddle
SecondRowTitleRight
SecondRowSubtitleRight
SecondRowTypeRight
SecondRowLinkRight
SecondRowSymbolRight
ExtensionTitleA
ExtensionValueA
ExtensionSymbolA
ExtensionTypeA
ExtensionLinkA
ExtensionAlertA
ExtensionTitleB
ExtensionValueB
ExtensionSymbolB
ExtensionTypeB
ExtensionLinkB
ExtensionAlertB

Clone this wiki locally