JSON Schema マニフェストの構造を理解
App の JSON Schema マニフェストを作成するためにプレーンテキストエディターを使用し、フォーマットを検証するためにサードパーティの検証ツールを使用できます (https://jsonlint.com など)。
App のマニフェストの一般フォーマットは、次の Web サイトで概要が説明されている JSON Schema マニフェストと類似しています。
https://support.google.com/chrome/a/answer/9771882
JSON Schema の公式文書と詳細については、次の Web サイトにアクセスしてください。
https://json-schema.org
アプリケーションのプロパティ
App マニフェストのコンテンツには、ヘッダー、およびそれに続くアプリケーションのプロパティのリストがあります。各プロパティにはキーと値の組み合わせがあります。これらのキーと値の組み合わせが定義され、マニフェストが Jamf Pro に追加されると、Jamf Pro は Jamf Pro インターフェイスでプロパティリストの使いやすい表示を自動的に生成し、App をカスタマイズできるようにします。
JSON Schema マニフェストで定義される各プロパティには、次のエレメントがあります。
-
Key Name — これはプロパティの名前です。
-
title — このエレメントはプロパティの名前を定義します。
-
description — このエレメントはプロパティの説明を定義します。
-
property_order — このエレメントはリストのプロパティの上から下の数値の順序を定義します。小さい数字が一番上に表示されます。
-
type — このエレメントはプロパティの値のタイプを定義します (「integer」など)。
値のタイプと Jamf Pro におけるその実装のリストについては、付録:構成可能な設定 を参照してください。
次の表は、サンプル 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 のドメイン (バンドル識別子) などの有益な情報もあります。 |
プロパティ 1 |
"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] }, |
このプロパティの type は値を integer として定義します。プロパティに対して事前に定義されているオプションがここに含まれます (enum_titles のキーと値の組み合わせに定義されています)。 enum_type に対して値を定義すると、これらの値に基づいて Jamf Pro がこの設定をオプション付きのポップアップメニューとして生成できるようになります。 |
プロパティ 2 |
"diskCacheSize": { "title": "Disk Cache Size", "description": "Set disk cache size, in bytes.", "property_order": 10, "type": "integer" }, |
このプロパティの type は値を integer として定義します。しかし、事前に定義されたオプションのグループはこれには含まれません。 Jamf Pro がこの設定を、整数を入力できるテキストフィールドとして生成します。 |
プロパティ 3 |
"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"/] }, |
このプロパティの type は値を string として定義します。プロパティに対して事前に定義されているオプションが値としてここに含まれます (enum_titles のキーと値の組み合わせに定義されています)。 enum_type に対して値を定義すると、これらの値に基づいて Jamf Pro がこの設定をオプション付きのポップアップメニューとして生成できるようになります。 |
プロパティ 4 |
"downloadDirectory": { "title": "Download Directory", "description": "Choose the default location for downloading working files.", "property_order": 20, "type": "string" }, |
このプロパティの type は値を string として定義します。事前に定義されたオプションのグループはこれには含まれません。 Jamf Pro がこの設定を、テキストを入力できるテキストフィールドとして生成します。 |
プロパティ 5 |
"askForPassword": { "title": "Ask For Password", "description": "Set Disk Manager application to require a password.", "property_order": 25, "type": "boolean" }, |
このプロパティの type は、値を boolean として定義します。 Jamf Pro はこの設定を「True」または「False」のオプションのあるポップアップメニューとして生成します。 |
プロパティ 6 |
"domainSafeList": { "title": "Domain Safelist", "description": "Disk Manager will not filter these domains.", "property_order": 30, "type": "array", "items": { "type": "string", "title": "Domain" } }, |
このプロパティの type は、値を array として定義します。その際、アレイの項目は string として定義されます。 Jamf Pro がこの設定を、データを入力できる 1 つ以上のテキストフィールドのリストとして生成します。 |
プロパティ 7 |
"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" } } } } |
このプロパティの type は、値を 1 つ以上の辞書のある array として定義します。その際、それぞれのサブプロパティは string として定義されます。 Jamf Pro はこの設定をテキストフィールドのリストとして生成します。このフィールドでは、リストの複数の項目に対して情報を提供できます。リストの各追加フィールドは、定義される追加のサブプロパティの数により異なります。 注:マニフェストで最後に定義されたプロパティには、最後の中括弧 (「}」) の後に区切りのコンマがありません。 |
Jamf Pro インターフェイス
JSON Schema マニフェストを Jamf Pro に追加した後、Jamf Pro は、Jamf Pro インターフェイスでプロパティリストの使いやすい表示を自動的に生成し、以下に類似する App をカスタマイズできるようにします。