アプリケーションパッケージのマニフェストファイルを作成する

このトピックでは、アプリケーションパッケージのマニフェストファイルを作成する方法について説明します。

マニフェストファイルについて

マニフェスト ファイルには、アプリケーション パッケージが Snowflake Native App を作成および管理するために必要な情報が含まれています。これには、セットアップスクリプトの場所、バージョン定義、アプリの設定情報が含まれます。

マニフェストファイルには以下の要件があります。

  • マニフェストファイルの名前は manifest.yml にする必要があります。

  • マニフェストファイルは、アプリケーションパッケージを作成するときにアクセスできるように、名前付きステージにアップロードされる必要があります。

  • マニフェストファイルは、他のアプリケーションファイルがある名前付きステージのディレクトリ構造のルートに存在している必要があります。

マニフェストファイル参照

manifest.yml ファイルに含めることのできる有効なプロパティは以下のとおりです。

manifest_version:

マニフェストファイルのバージョンを指定します。

必須

version:

バージョンに関するパラメーターを含むブロックを定義します。バージョンとパッチの詳細については、 バージョンおよびパッチについて をご参照ください。

オプション

name:

バージョンの論理名を指定します。この名前は、バージョンを管理する SQL コマンドで使用されます。

オプション

パッチ:

デフォルトのパッチ番号を指定します。この名前は、バージョンを管理する SQL コマンドで使用されます。SQL で指定されたパッチ番号が優先されます。バージョンとパッチの詳細については、 バージョンおよびパッチについて をご参照ください。

オプション

label:

コンシューマーに表示されるバージョンの名前を指定します。

オプション

comment:

バージョンのコメントを指定します。このコメントは、プロバイダーが SHOW VERSIONS コマンドを実行する場合にのみ表示されます。

オプション

artifacts:

パッケージのこのバージョンから配布されるリソースに関連するブロックを定義します。

オプション

Readme:

Snowflake Native App の概要をマークダウン形式で提供するReadmeファイルへのパスを指定します。Streamlitアプリの場合は、 default_streamlit プロパティに値が指定されないと、インストールされた Snowflake Native App を表示する際に、このファイルのコンテンツがコンシューマーに表示されます。

このファイルの場所は、 manifest.yml ファイルの場所から相対的に指定されます。

オプション

setup_script:

Snowflake Native App のインストール時に実行される SQL スクリプトのパスとファイル名を指定します。値を指定しない場合、デフォルト値は manifest.yml ファイルと同じディレクトリの setup.sql になります。

オプション

default_streamlit:

Snowflake Native App にStreamlitアプリが含まれている場合、このプロパティは、コンシューマーが利用可能なデフォルトのStreamlitアプリのスキーマと名前を指定します。

オプション

configuration:

Snowflake Native App の構成プロパティを含むブロックを指定します。

オプション

log_level:

インストールされているバージョンの Snowflake Native App で使用するログレベルを指定します。このプロパティでサポートされる値については、 ロギング、メトリクス、トレースのレベル設定 をご参照ください。

オプション

デフォルト: Off

trace_level:

インストールされている Snowflake Native App で使用するトレースイベントレベルを指定します。プロバイダーがトレースを有効にすると、 Snowflake Native App はすべてのクエリとストアドプロシージャ呼び出しの開始時刻と終了時刻を自動的にキャプチャします。

注釈

trace_level プロパティが OFF 以外の値に設定された Snowflake Native App を公開すると、イベントテーブルを表示できるコンシューマーアカウントのすべてのユーザーに、非表示のストアドプロシージャへの呼び出しが公開される可能性があります。

trace_level プロパティのサポートされている値については ロギング、メトリクス、トレースのレベル設定 をご参照ください。

オプション

デフォルト: Off

privileges:

Snowflake Native App のインストール時にコンシューマーに付与する必要のある権限を含むブロックを定義します。

オプション

デフォルト: 空のリスト

<権限名>:

権限の名前を指定します。

description:

リクエストされている権限の説明を提供します。 description で指定されたテキストは、 Python Permission SDK を使用しているか SHOW PRIVILEGES が起動している場合で Snowsight で権限が表示される場合に、コンシューマーに表示されます。

Snowflake Native App がこの権限を必要とする理由、またその権限が必須かオプションかについて、可能な限り多くの情報を提供する必要があります。

privileges が指定されている場合は必須です。

references:

プロバイダーによって定義された参照を含むブロックを定義します。コンシューマーは、これらの参照をアカウント内のオブジェクトにバインドする必要があります。

オプション

- <reference name>:

統合の名前を指定します。

label:

Snowflake Native App のインストール時にコンシューマーに表示される参照の説明を提供します。

references が指定されている場合は必須です。

description:

リクエストされている参照の説明を提供します。 description で指定されたテキストは、 Python Permission SDK を使用して Snowsight で権限が表示される場合に、コンシューマーに表示されます。

Snowflake Native App がこの権限を必要とする理由、またその権限が必須か任意かについて、可能な限り多くの情報を提供する必要があります。

privileges が指定されている場合は必須です。

privileges:

参照に必要な権限を指定します。

references が指定されている場合は必須です。

object_type:

スキーマやテーブル、または API 統合など、参照に関連付けられているオブジェクトの型を指定します。

references が指定されている場合は必須です。

multi_valued:

複数のオブジェクトが参照に関連付けられていることを指定します。複数のコンシューマー・オブジェクトを同じ参照にバインドするには、このプロパティを使用します。このプロパティが指定されている場合、1つの値参照を持つオブジェクトに対して同じ操作が実行されます。このプロパティは、多値参照を持つオブジェクトにも使用できます。 Snowflake Native App Framework 参照操作については、 コンシューマーから参照およびオブジェクトレベル権限をリクエストする をご参照ください。

オプション

デフォルト: false

register_callback:

参照の呼び出しに使用されるコールバック関数の名前を指定します。

references が指定されている場合は必須です。

configuration_callback:

この参照にバインドするオブジェクトに必要な構成を提供するコールバック関数の名前を指定します。

このプロパティは、 object_typeEXTERNAL ACCESS INTEGRATION または SECRET の場合に必要です。このプロパティは、他のタイプのオブジェクトには適用されません。

required_at_setup:

アプリのインストール時に参照をバインドする必要があることを示します。TRUE または FALSE を承諾します。デフォルトは FALSE です。

references が指定されている場合は必須です。

マニフェストファイルの例

次の例は、サポートされるすべてのプロパティに値が指定された典型的なマニフェストファイルを示しています。

manifest_version: 1 # required
version:
  name: hello_snowflake
  patch: 3
  label: "v1.0"
  comment: "The first version of a Snowflake Native App"

artifacts:
  readme: readme.md
  setup_script: scripts/setup.sql
  default_streamlit: streamlit/ux_schema.homepage_streamlit

configuration:
  log_level: debug
  trace_level: always

privileges:
  - EXECUTE TASK:
      description: "Run ingestion tasks for replicating Redshift data"
  - EXECUTE MANAGED TASK:
      description: "To run serverless ingestion tasks for replicating Redshift data"
  - CREATE WAREHOUSE:
      description: "To create warehouses for executing tasks"
  - MANAGE WAREHOUSES:
      description: "To manage warehouses for optimizing the efficiency of your accounts"
  - CREATE DATABASE:
      description: "To create sink databases for replicating Redshift data"
  - IMPORTED PRIVILEGES ON SNOWFLAKE DB:
      description: "To access account_usage views"
  - READ SESSION:
      description: "To allow Streamlit to access some context functions"

references:
  - consumer_table:
      label: "Consumer table"
      description: "A table in the consumer account that exists outside the APPLICATION object."
      privileges:
        - SELECT
        - INSERT
        - UPDATE
      object_type: Table
      multi_valued: true
      register_callback: config.register_reference
  - consumer_external_access:
      label: "Consumer external access integration"
      description: "An external access integration in the consumer account that exists outside the APPLICATION object."
      privileges:
        - USAGE
      object_type: EXTERNAL ACCESS INTEGRATION
      register_callback: config.register_reference
      configuration_callback: config.get_configuration_for_reference
      required_at_setup: true
Copy