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 fichiermanifest.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 queOFF
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
estEXTERNAL ACCESS INTEGRATION
ouSECRET
. 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