Référence du manifeste d’une Snowflake Native App

Cette rubrique décrit la structure et les champs du fichier manifeste d’une Snowflake Native App.

champ manifest_version

Spécifie la version du format du fichier manifeste.

Ce champ est obligatoire.

manifest_version: 1

Cette version du fichier manifeste prend en charge les fonctionnalités actuelles et héritées des Snowflake Native Apps.

Exemple : manifest_version: 1

manifest_version: 2

Cette version du fichier manifeste prend en charge des fonctionnalités supplémentaires, y compris l’octroi automatique de privilèges.

Prudence

Avant d’utiliser la version 2 du fichier manifeste, tenez compte des implications de sécurité décrites dans À propos du fichier manifeste.

Exemple : manifest_version: 2

Exemple manifest_version

manifest_version: 2
Copy

champ version

Définit un bloc contenant des champs relatifs à la version d’une application. Pour plus d’informations sur les versions et les correctifs, consultez Mise à jour d’une application.

Note

Les versions et les correctifs définis à l’aide des commandes CREATE APPLICATION PACKAGE ou ALTER APPLICATION PACKAGE priment sur les versions et les correctifs définis dans le fichier manifeste.

Ce champ est facultatif.

name

Spécifie le nom de la version.

Ce champ est facultatif.

Exemple : name: v1

patch

spécifie le numéro de correctif par défaut.

Ce champ est facultatif.

Exemple : patch: 1

label

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

Ce champ est facultatif.

Exemple : label: "Initial Release"

comment

Spécifie un commentaire pour l’utilisateur. Ce commentaire est visible dans Snowsight ou lorsque le fournisseur exécute la commande SHOW VERSIONS IN APPLICATION PACKAGE.

Ce champ est facultatif.

Exemple : comment: "This is the initial release of the app."

Exemple version:

version:
  name: v1
  patch: 1
  label: "Initial Release"
  comment: "This is the initial release of the app."
Copy

champ artifacts:

Définit un bloc qui spécifie les ressources utilisées par l’application.

Ce champ est obligatoire.

setup_script:

Spécifie le chemin et le nom de fichier du script d’installation qui est exécuté lors de l’installation ou de la mise à niveau de l’application Snowflake Native App. Si vous ne spécifiez pas de valeur, la valeur par défaut utilisée par l’application est setup.sql dans le même répertoire que le fichier manifeste.

Exemple : setup_script: scripts/setup.sh

readme:

Spécifie un chemin vers un fichier Markdown readme, qui fournit une vue d’ensemble de l’application et de ses fonctionnalités.

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

Ce champ est facultatif, mais Snowflake vous recommande d’inclure un fichier readme avec votre application.

Exemple : readme: docs/README.md

default_streamlit_app:

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.

Ce champ est obligatoire si l’application inclut une application Streamlit.

extension_code:

Active ou désactive l’utilisation des langages de code d’extension, y compris Java, Python et Scala.

Exemple : extension_code: true

container_services:

Spécifie l’emplacement des images de conteneur utilisées par une application avec conteneurs. Voir Spécifier les images de conteneur utilisées par une application avec conteneurs pour plus d’informations.

Ce champ est obligatoire pour une application avec conteneurs.

uses_gpu:

indique que l’application avec conteneurs utilise un GPU.

Ce champ est obligatoire pour une application avec conteneurs.

Exemple : uses_gpu: true

images:

Spécifie le chemin vers chacune des images de conteneur utilisées par une application avec conteneurs.

Ce champ est obligatoire pour une application avec conteneurs.

Exemple :

images:
- /spcs_app/napp/img_repo/eap_frontend
- /spcs_app/napp/img_repo/eap_backend
- /spcs_app/napp/img_repo/eap_router
Copy

Exemple artifacts

artifacts:
  setup_script: scripts/setup.sql
  readme: docs/README.md
  default_streamlit_app: apps/main.py
  extension_code: true
  container_services:
      uses_gpu: true
      images:
        - /spcs_app/napp/img_repo/eap_frontend
        - /spcs_app/napp/img_repo/eap_backend
Copy

champ configuration

Spécifie un bloc contenant les propriétés de configuration d’une application.

Ce champ est facultatif.

log_level:

Spécifie le niveau de journalisation à utiliser pour l’application Snowflake Native App.

Si vous ne définissez pas de valeur pour cette propriété, les données de journal par défaut ne sont pas capturées.

Pour plus d’informations sur les valeurs prises en charge, consultez Définition des niveaux de journalisation, des métriques et du traçage.

trace_level:

Spécifie le niveau d’événements de traçage à utiliser pour l’application. Lorsqu’un fournisseur active le traçage, l’application 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.

Prudence

La publication d’une application avec la propriété trace_level définie sur une valeur autre que OFF peut exposer les appels à des procédures stockées cachées à tout utilisateur du compte de consommateur qui peut voir le tableau des événements.

Si vous ne définissez pas de valeur pour cette propriété, les événements de traçage ne sont pas capturés.

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.

metric_level:

Spécifie le niveau métrique à utiliser pour l’application. Lorsqu’un fournisseur active les métriques, l’application émet automatiquement des points de données de métriques de ressources auto-instrumentées dans la table des événements.

Voir Définir les niveaux de journalisation et de trace pour une application pour plus d’informations.

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

grant_callback:

Spécifie le schéma et le nom de la fonction de rappel pour une application avec conteneurs. La fonction de rappel est une procédure stockée qui peut créer des pools de calcul et des services et effectuer d’autres tâches de configuration requises par l’application.

Ce champ est obligatoire pour une application avec conteneurs.

Pour plus d’informations, voir Créer un service en utilisant la propriété grant_callback.

Exemple : grant_callback: my_schema.my_grant_callback

Exemple configuration

configuration:
  log_level: INFO
  trace_level: OFF
  metric_level: BASIC
  grant_callback: my_schema.my_grant_callback
Copy

champ privileges:

Définit un bloc contenant les privilèges que l’application demande à un compte de consommateur.

Ce champ est obligatoire si l’application demande des privilèges dans le compte de consommateur.

<privilege_name> :

Spécifie le nom d’un privilège que l’application demande dans un compte de consommateur.

Ce champ est obligatoire si la propriété privileges est spécifiée.

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.

En tant que fournisseur, vous devez inclure autant d’informations que possible sur la raison pour laquelle l’application Snowflake Native App a besoin de ce privilège et indiquer si le privilège est requis ou facultatif.

Ce champ est obligatoire si le champ privileges est spécifié.

Exemple privileges:

privileges:
- CREATE TABLE:
  description: 'Required to create tables in the consumer account.'
- CREATE COMPUTE POOL:
  description: 'Required to allow the app to create a compute pool in the consumer account.'
- BIND SERVICE ENDPOINT:
  description: 'Required to allow endpoints to be externally accessible.'
Copy

champ references:

Définit un bloc contenant les références que l’application demande dans un compte de consommateur. Le consommateur doit lier ces références aux objets de son compte.

Ce champ est obligatoire si l’application demande des références dans le compte de consommateur.

- <reference_name> :

Spécifie le nom d’une référence que l’application demande dans un compte de consommateur.

Ce champ est obligatoire si la propriété references est spécifiée.

label:

Spécifie une balise pour la référence qui est affichée aux consommateurs.

Ce champ est obligatoire si la propriété references est spécifiée.

Exemple : label: "Orders table"

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 des Python Permission SDK, ou lorsque la commande SHOW REFERENCES est exécutée.

Ce champ est obligatoire si la propriété references est spécifiée.

privileges:

Spécifie une liste de privilèges que l’application requiert sur l’objet auquel la référence est liée dans le compte de consommateur.

Ce champ est obligatoire si la propriété references est spécifiée.

Exemple :

privileges:
  - SELECT
  - INSERT
Copy

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.

Ce champ est obligatoire si le champ references est spécifié.

Exemple : object_type: TABLE

Pour plus d’informations, voir Types d’objets et privilèges qu’une référence peut contenir.

multi_valued:

Permet d’associer plus d’un objet à 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.

Ce champ est facultatif. La valeur par défaut est false.

Pour plus d’informations, voir Demander des références et des privilèges au niveau de l’objet des consommateurs

Exemple : multi_valued: true

register_callback

Spécifie le schéma et le nom de la fonction de rappel qui est exécutée lorsque le consommateur lie la référence à un objet de son compte.

Ce champ est obligatoire si la propriété references est spécifiée.

Exemple : register_callback: my_schema.my_register_callback

configuration_callback

Spécifie le nom de la fonction de rappel qui fournit 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.

Exemple : required_at_setup: true

Exemple references

references:
- ORDERS_TABLE:
    label: "Orders table"
    description: "Orders table in TPC-H samples"
    privileges:
      - SELECT
    object_type: VIEW
    multi_valued: false
    register_callback: v1.register_single_callback

- EXTERNAL_ENDPOINT_EAI:
    label: "Allows egress to an external API"
    description: "EAI for Egress from NA+SPCS"
    privileges: [USAGE]
    object_type: EXTERNAL_ACCESS_INTEGRATION
    register_callback: v1.register_single_callback
    configuration_callback: v1.get_configuration
    required_at_setup: true
Copy

champ restricted_callers_rights:

Spécifie les propriétés de configuration liées aux droits restreints de l’appelant.

Ce champ est obligatoire si l’application crée des procédures stockées ou des services Snowpark Container Services qui fonctionnent avec les droits d’appelant restreints.

Pour plus d’informations, voir Utiliser les droits du propriétaire et les droits restreints de l’appelant dans une application.

enabled:

Indique si l’application est autorisée à créer des exécutables avec les droits d’appelant restreints.

Les fournisseurs doivent définir cette propriété sur true si l’application crée des procédures stockées ou des services Snowpark Container Services qui fonctionnent avec les droits d’appelant restreints.

description:

Fournit une description des raisons pour lesquelles l’application a besoin de créer des exécutables avec les droits d’appelant restreints.

Exemple restricted_callers_rights:

restricted_callers_rights:
  enabled: true
  description: "Required to create stored procedures that run with restricted caller's rights."
Copy