JSON スキーママニフェスト構造

App の JSON Schema マニフェストを作成するためにプレーンテキストエディターを使用し、フォーマットを検証するためにサードパーティの検証ツールを使用できます (https://jsonlint.com など)。

JSON スキーマの公式文書と詳細については、次の Web サイトにアクセスしてください。https://json-schema.org

注:

このセクションは、例として「Disk Manager」と呼ばれるサンプル App を使用します。この App の JSON Schema マニフェストを Jamf Pro に追加すると、Jamf Pro が自動入力できる様々なプロパティが提示され、Jamf Pro インターフェイスを使用して App をカスタマイズできるようになります。

Jamf Pro インターフェイス

JSON Schema マニフェストを Jamf Pro に追加した後、Jamf Pro は、Jamf Pro インターフェイスでプロパティリストの使いやすい表示を自動的に生成し、以下に類似する App をカスタマイズできるようにします。

アプリケーションのプロパティ

App マニフェストのコンテンツには、ヘッダー、およびそれに続くアプリケーションのプロパティのリストがあります。各プロパティにはキーと値の組み合わせがあります。これらのキーと値の組み合わせが定義され、マニフェストが Jamf Pro に追加されると、Jamf ProJamf Pro インターフェイスでプロパティリストの使いやすい表示を自動的に生成し、App をカスタマイズできるようにします。

JSON Schema マニフェストで定義される各プロパティには、次のエレメントがあります。
  • Key Name

    これはプロパティの名前です。

  • title

    この値はプロパティの名前を定義します。

  • description

    この値はプロパティの説明を定義します。

  • property_order

    この値はリストのプロパティの上から下の数値の順序を定義します。小さい数字が一番上に表示されます。

  • type

    この値はプロパティの値のタイプを定義します (「整数」など)。

    値のタイプと Jamf Pro におけるその実装のリストについては、JSON 値のタイプを参照してください。

次の表は、サンプル App「Disk Manager」の JSON Schema マニフェストのサンプルを表示しています。これは、ヘッダーと複数のアプリケーションのプロパティに分割されています。表の各列は、フォームを生成する方法を提示し、Jamf Pro で生成される設定を説明しています。

キーと値のペアJamf Pro が生成する設定
{

"title": "Disk Manager (net.talkingmoose.diskmanager)",

"description": "Preference settings for the Disk Manager application",

"properties": {

ヘッダー

ヘッダーには、マニフェストのタイトルと説明があります。これには、App のドメイン (バンドル識別子) などの有益な情報もあります。

"askForPasswordDelay": {

"title": "Ask For Password Delay",

"description": "Disk Manager will wait the selected amount of time before requiring a password.",

"property_order": 5,

"type": "integer",

"options": {

"enum_titles": ["immediately", "5 seconds", "1 Minute", "5 Minutes", "15 Minutes", "1 Hour", "4 hours", "8 hours"]

},

"enum": [0,5,60,300,900,3600,14400,28800]

},

プロパティ 1

このプロパティのタイプは値を整数として定義します。プロパティに対して事前に定義されているオプションがここに含まれます (enum_titles のキーと値の組み合わせに定義されています)。

enum_type に対して値を定義すると、これらの値に基づいて Jamf Pro がこの設定をオプション付きのポップアップメニューとして生成できるようになります。

 	

"diskCacheSize": {

"title": "Disk Cache Size",

"description": "Set disk cache size, in bytes.",

"property_order": 10,

"type": "integer"

},

プロパティ 2

このプロパティのタイプは値を整数として定義します。しかし、事前に定義されたオプションのグループはこれには含まれません。Jamf Pro がこの設定を、整数を入力できるテキストフィールドとして生成します。

"primaryServer": {

"title": "Primary Server",

"description": "Disk Manager will default to this server.",

"property_order": 15,

"type": "string",

"options": {

"enum_titles": ["Server 1", "Server 2", "Server 3"]

},

"enum": ["https://server1.talkingmoose.net/", "https://server2.talkingmoose.net/", " https://server3.talkingmoose.net/" ]

},

プロパティ 3

このプロパティのタイプは値を文字列として定義します。プロパティの値として事前に定義されているオプションがここに含まれます (enum_titles のキーと値の組み合わせに定義されています)。enum_type に対して値を定義すると、これらの値に基づいて Jamf Pro がこの設定をオプション付きのポップアップメニューとして生成できるようになります。

"downloadDirectory": {

"title": "Download Directory",

"description": "Choose the default location for downloading working files.",

"property_order": 20,

"type": "string"

},

プロパティ 4

このプロパティのタイプは値を文字列として定義します。しかし、事前に定義されたオプションのグループはこれには含まれません。Jamf Pro がこの設定を、テキストを入力できるテキストフィールドとして生成します。

"askForPassword": {

"title": "Ask For Password",

"description": "Set Disk Manager application to require a password.",

"property_order": 25,

"type": "boolean"

},

プロパティ 5

このプロパティのタイプは、値を Boolean (ブーリアン) として定義します。Jamf Pro はこの設定を「True」または「False」のオプションのあるポップアップメニューとして生成します。

"domainSafeList": {

"title": "Domain Safelist",

"description": "Disk Manager will not filter these domains.",

"property_order": 30,

"type": "array",

"items": {

"type": "string",

"title": "Domain"

}

},

プロパティ 6

このプロパティのタイプは、値をアレイ として定義します。その際、アレイの項目は文字列として定義されます。Jamf Pro がこの設定を、データを入力できる 1 つ以上のテキストフィールドのリストとして生成します。

"serverList": {

            "title": "Server List",

            "description": "Add servers to management list.",

            "property_order": 35,

            "type": "array",

            "items": {

                "type": "object",

                "properties": {

                    "serverAddress": {

                        "title": "Hostname",

                        "type": "string"

                    },

                    "macAddress": {

                        "title": "MAC Address",

                        "type": "string"

                    },

                    "ipAddress": {

                        "title": "IP Address",

                        "type": "string"

                    }

                }

            }

        }

プロパティ 7

このプロパティのタイプは、値を 1 つ以上の辞書のあるアレイとして定義します。その際、それぞれのサブプロパティは文字列として定義されます。

Jamf Pro はこの設定をテキストフィールドのリストとして生成します。このフィールドでは、リストの複数の項目に対して情報を提供できます。リストの各追加フィールドは、定義される追加のサブプロパティの数により異なります。

注:

マニフェストで最後に定義されたプロパティには、最後の中括弧 (「}」) の後に区切りのコンマがありません。

Jamf Pro インターフェイス

JSON Schema マニフェストを Jamf Pro に追加した後、Jamf Pro は、Jamf Pro インターフェイスでプロパティリストの使いやすい表示を自動的に生成し、以下に類似する App をカスタマイズできるようにします。