Création du fichier manifeste d’un paquet d’application

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

À propos du fichier manifeste

Le fichier manifeste contient les informations dont le paquet d’application a besoin pour créer et gérer une Snowflake Native App. Cela inclut l’emplacement du script d’installation, les définitions de version et les informations de configuration de l’application.

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 au paquet d’application.

  • Le fichier manifeste doit exister à la racine de la structure de répertoire sur la zone de préparation nommée là où d’autres fichiers d’applications sont stockés.

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. Pour plus d’informations sur les versions et les correctifs, consultez À propos des versions et des correctifs.

Facultatif

name :

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

Facultatif

correctif :

spécifie le numéro de correctif par défaut. Ce numéro est utilisé dans les commandes SQL qui gèrent les versions. Les numéros de correctifs spécifiés à l’aide de SQL sont prioritaires. Pour plus d’informations sur les versions et les correctifs, consultez À propos des versions et des correctifs.

Facultatif

label :

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

Facultatif

comment :

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

Facultatif

artifacts :

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

Facultatif

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.

Facultatif

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.

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. Pour plus d’informations sur les valeurs prises en charge pour cette propriété, voir Définition des niveaux de journalisation, des métriques et du traçage.

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.

Pour les valeurs prises en charge par la propriété trace_level, voir Définition des niveaux de journalisation, des métriques et du traçage.

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 de Python Permission SDK, ou quand la commande SHOW PRIVILEGES est exécutée.

Fournissez autant d’informations que possible sur la raison pour laquelle la 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.

Facultatif

- <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é.

description :

Fournit une description de la référence en cours de demande. Le texte spécifié dans description est affiché au consommateur lorsque la référence est affichée dans Snowsight à l’aide de Python Permission SDK.

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

Requis si privileges 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. Utilisez cette propriété pour lier plusieurs objets de consommateurs à la même référence. Lorsque cette propriété est spécifiée, les mêmes opérations sont effectuées sur les objets avec une seule référence de valeur. La propriété peut également être utilisée avec des objets avec des références à valeurs multiples. Voir Demander des références et des privilèges au niveau de l’objet des consommateurs pour en savoir plus sur les opérations de référence Snowflake Native App Framework.

Facultatif

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é.

configuration_callback :

Spécifie le nom de la fonction de rappel qui fournira la configuration souhaitée pour l’objet à lier à cette référence.

Cette propriété est requise si object_type est EXTERNAL ACCESS INTEGRATION ou SECRET. Cette propriété ne s’applique pas aux autres types d’objets.

required_at_setup :

indique que les références doivent être liées lors de l’installation de l’application. Accepte TRUE ou FALSE. La valeur par défaut est FALSE.

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
  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