Declarative Native App マニフェストリファレンス¶
プロバイダーは、:doc:` パッケージ <package>` の一部としてマニフェストファイルを作成します。
マニフェストファイルは、manifest.yml というファイル名のテキストベースの `YAML<https://yaml.org/spec/>`_ ファイルです。ノートブック、テーブル、ビューなどのデータをコンシューマーと宣言的に共有するために使用されます。
マニフェストファイルは :doc:` アプリロール <app-roles>` も定義します。アプリ所有者はこれを使用して、アプリのデータや機能のサブセットを組織内のチームでロールごと共有できます。
アプリケーションパッケージの開発については、 Native Application Frameworkにおける宣言型共有用のアプリケーションパッケージ をご参照ください。
Declarative Native App マニフェスト¶
一般的な形式の Declarative Native App マニフェストには以下が含まれます。
manifest_version: # Added automatically. Don't include.
application_content: # Optional, describes associated app logic
roles: # Optional, describes roles associated with shared_content
shared_content: # Required, describes associated data to be shared
フィールド¶
Declarative Native App マニフェストには以下のフィールドが含まれます。
manifest_version フィールド¶
アプリケーションパッケージの新しいバージョンをリリースすると、このフィールドがマニフェストファイルに自動的に追加されます。
アプリケーションパッケージに含めるマニフェストファイルを作成する場合は、このフィールドを含めないでください。このフィールドに対する手動による編集はサポートされていません。
manifest_version の最上位のフィールド(整数、必須)で、マニフェストファイルのバージョン番号を指定します。
バージョン管理の詳細については、 Native Application Frameworkにおける宣言共有のパッケージバージョン をご参照ください.
application_content フィールド¶
application_content フィールド(リスト、オプション)では、アプリによって宣言的に共有されるバンドルコンテンツを定義します。
このフィールドには、単一の notebooks フィールドが含まれます。
application_content.notebooks(リスト、必須)::doc:` ノートブック </user-guide/ui-snowsight/notebooks>` という名前のリスト。
application_content.notebooks.{named notebook} フィールド¶
各名前付きノートブックは、以下の名前と値のペアをサポートしています。
main_file(文字列、必須)インタラクティブなPythonノートブック(.ipynb)ファイルの名前。comment(文字列、オプション):ノートブックについて説明するコメント。runtime_environment_version(文字列、オプション): プラットフォーム内で該当する場合は、ノートブック実行コンテキストに特定の :ref:` ランタイム環境バージョン <label-notebook_runtime_descriptions>` を指定します。roles(リスト、オプション):ノートブックへのアクセスを付与できるアプリロールのリスト。例:[sales,marketing].このフィールドが空の場合([])または省略されている場合は、アプリの所有者と 付与されたIMPORTEDPRIVILEGES で定義されている必要があります。
application_context の例¶
この例では、既知のランタイム stable を使用して単一のノートブック salesbook が定義されています。これは、sales または marketing のロールを付与されたユーザーにアクセスを提供するノートブックファイル NOTEBOOK1.ipynb** を使用します。
application_content:
notebooks:
- salesbook:
roles: [sales, marketing]
main_file: NOTEBOOK1.ipynb
comment: Notebook1: Sales and marketing notebook
runtime_environment_version: stable
roles:
- sales:
- marketing:
roles フィールド¶
roles の最上位のフィールド(リスト、オプション)で、 :doc:` アプリロール <app-roles>` のリストを定義します。これらのロールにより、アプリの所有者は、スキーマ、テーブル、ビュー、ノートブックなどのアプリ内の共有オブジェクトへのアクセスを組織に提供できます。
名前付き各ロールには、オプションで comment を含めることができ、アプリの所有者がアプリケーションのロールをリストするときに説明として表示されます。
これらのロールは、マニフェスト内で名前付きの notebook、 schema、 table または view レベルの共有オブジェクトによって参照されます。table または view レベルのオブジェクトの場合は、 schema レベルでもロールを指定する必要があります。
注釈
マニフェスト内のすべてのコンテンツには、アプリの所有者(ACCOUNTADMIN)およびアプリに付与されたロール IMPORTED PRIVILEGES がアクセスできます。
このマニフェストファイルで定義されたオブジェクト名は、ランタイムオブジェクトの解決に使用されます。マニフェストファイルを新しいバージョンで更新せずにプロバイダーがオブジェクト名を変更した場合、コンシューマーはオブジェクトへのアクセスを失います。
roles の例¶
roles:
- sales:
- marketing:
application_content:
notebooks:
- salesbook:
roles: [sales, marketing]
main_file: NOTEBOOK1.ipynb
comment: Sales and marketing notebook
shared_content:
databases:
- sales:
schemas:
- orders:
roles: [sales, marketing]
tables:
- january_2025: # App owners/assignees only
- february_2025:
roles: [sales] # Accessible to sales only
- march_2025:
roles: [marketing] # Accessible to marketing only
- customer_info:
schemas:
- customer_contact:
roles: [customer_support]
views:
- customer_address:
roles: [customer_support] # Accessible to customer_support
- customer_details:
roles: [] # App owners/assignees only
ロールの詳細については、 :doc:` アプリロール <app-roles>` をご参照ください。
マニフェストファイルの例¶
次のコードブロックは、 Declarative Native App マニフェストファイルの例です。
manifest_version: 2
roles:
- VIEWER:
comment: "The VIEWER role provides access to only one view."
- ANALYST:
comment: "The ANALYST role provides access to both views and the table."
shared_content:
databases:
- SNAF_POPULATION_DB:
schemas:
- DATA_SCHEMA:
roles: [VIEWER, ANALYST]
tables:
- COUNTRY_POP_BY_YEAR:
roles: [ANALYST]
views:
- COUNTRY_POP_BY_YEAR_2000:
roles: [VIEWER, ANALYST]
application_content:
notebooks:
- intro_notebook:
roles: [VIEWER, ANALYST]
main_file: INTRO_NB.ipynb
- analyst_notebook:
roles: [ANALYST]
main_file: ANALYST_NB.ipynb