Création du fichier manifeste

Cette rubrique explique comment créer le fichier manifeste d’un paquet d’application.

À propos du fichier manifeste

L”Snowflake Native App Framework exige que chaque paquet d’application contienne un fichier manifeste. Ce fichier définit les propriétés requises par le paquet d’application, y compris l’emplacement du script d’installation et les définitions de la version.

Le fichier manifeste doit remplir les conditions suivantes :

  • Le nom du fichier manifeste doit être manifest.yml.

  • Le fichier en zone de préparation doit être téléchargé dans une zone de préparation nommée afin qu’il soit accessible lors de la création d’un paquet d’application ou d’une Snowflake Native App.

  • Le fichier manifeste doit exister à la racine de la structure de répertoire sur la zone de préparation nommée.

Référence du fichier manifeste

Vous trouverez ci-dessous les propriétés valides que le fichier manifest.yml peut contenir :

manifest_version :

Spécifie la version du fichier manifeste.

Obligatoire

version :

Définit un bloc contenant des paramètres relatifs à une version.

Facultatif

name :

Spécifie le nom logique de la version. Ce nom est utilisé dans les commandes SQL qui gèrent les versions.

label :

Spécifie un nom pour la version affichée aux consommateurs.

comment :

Spécifie un commentaire pour l’utilisateur. Ce commentaire n’est visible que lorsque le fournisseur exécute la commande SHOW VERSIONS.

artifacts :

Définit un bloc relatif aux ressources qui sont distribuées à partir de cette version du paquet.

Obligatoire

readme :

Spécifie le chemin à un fichier Lisez-moi qui fournit une vue d’ensemble de l”Snowflake Native App au format markdown. Dans le cas d’une application Streamlit, si aucune valeur n’est spécifiée pour la propriété default_streamlit , le contenu de ce fichier est affiché aux consommateurs lors de l’affichage de l”Snowflake Native App installée.

L’emplacement de ce fichier est spécifié par rapport à l’emplacement du fichier manifest.yml.

Obligatoire

setup_script :

Spécifie le chemin et le nom de fichier du script SQL qui est exécuté lors de l’installation de l”Snowflake Native App. Si vous ne spécifiez pas de valeur, la valeur par défaut est setup.sql dans le même répertoire que le fichier manifest.yml.

Facultatif

default_streamlit :

Si l”Snowflake Native App installe une application Streamlit, cette propriété spécifie le schéma et le nom de l’application Streamlit par défaut disponible pour les consommateurs.

Requis si l”Snowflake Native App inclut une application Streamlit. Facultatif, sinon.

extension_code :

Indique si l”Snowflake Native App peut exécuter des UDFs et des procédures stockées. La valeur par défaut de cette propriété est false.

Facultatif

configuration :

Spécifie un bloc contenant les propriétés de configuration de l”Snowflake Native App.

Facultatif

log_level :

Spécifie le niveau de journalisation à utiliser pour la version installée de l”Snowflake Native App. Reportez-vous à Réglage du niveau de journalisation pour obtenir des informations sur les valeurs prises en charge pour cette propriété.

Facultatif

Par défaut : Off

trace_level :

Spécifie le niveau d’événement de trace à utiliser pour l”Snowflake Native App. Lorsqu’un fournisseur active le traçage, une Snowflake Native App capture automatiquement les heures de début et de fin de toutes les requêtes et de tous les appels de procédures stockées.

Note

La publication d’une Snowflake Native App dont la propriété trace_level est définie sur une valeur autre que OFF peut exposer les appels à des procédures stockées cachées à tout utilisateur du compte du consommateur qui peut voir la table des événements.

Voir Réglage du niveau de trace pour les valeurs prises en charge par la propriété trace_level.

Facultatif

Par défaut : Off

privileges :

Définit un bloc contenant les privilèges que le consommateur doit attribuer lors de l’installation de l”Snowflake Native App.

Facultatif

Par défaut : une liste vide

<nom du privilège> :

Spécifie le nom du privilège.

description :

Fournit une description du privilège demandé. Le texte spécifié dans description est affiché au consommateur lorsque le privilège est affiché dans Snowsight à l’aide du Python Permission SDK.

Vous devez fournir autant d’informations que possible sur la raison pour laquelle l”Snowflake Native App a besoin de ce privilège et si le privilège est requis ou facultatif.

Requis si privileges est spécifié.

references :

Définit un bloc contenant les références définies par le fournisseur. Le consommateur doit lier ces références aux objets de son compte.

- <nom référence> :

Spécifie le nom de la référence.

label :

Fournit une description de la référence que le consommateur peut voir lorsque l”Snowflake Native App est installée.

Requis si references est spécifié.

privileges :

Spécifie les privilèges requis par la référence.

Requis si references est spécifié.

object_type :

Spécifie le type d’objet associé à la référence, par exemple un schéma et une table, ou une intégration API.

Requis si references est spécifié.

multi_valued :

Spécifie que plusieurs objets sont associés à la référence.

En option.

Par défaut : false

register_callback :

Spécifie le nom de la fonction de rappel utilisée pour appeler la référence.

Requis si references est spécifié.

Exemple de fichier manifeste

L’exemple suivant montre un fichier manifeste typique avec des valeurs spécifiées pour toutes les propriétés prises en charge :

manifest_version: 1 # required
version:
  name: hello_snowflake
  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
  extension_code: true

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"

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
Copy