Create and manage an application package

This topic describes how providers can create an application package to develop a Snowflake Native App.

About the application package

An application package is a container that encapsulates the data content and application logic used by a Snowflake Native App. An application package also contains information about versions and patches defined for an app.

Chaque version d’une application nécessite sa propre version du manifeste et du script d’installation :

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.

For more information, see Créer le fichier manifeste pour une application.

Script d’installation:

Le script d’installation contient les instructions SQL qui sont exécutées lors de l’installation de l’application, soit dans le compte de consommateur, soit localement pendant le développement et les tests.

Pour plus d’informations, voir Create the setup script.

Note

Vous pouvez créer un paquet d’application sans créer le fichier manifeste ou le script d’installation. Toutefois, pour développer ou tester une application, vous devez charger ces fichiers dans une zone de préparation afin que le paquet d’application puisse y accéder.

À propos des canaux de version

Les canaux de version gèrent le cycle de vie des versions des Snowflake Native Apps. Ils permettent aux fournisseurs de créer et de gérer des versions d’une application et de publier l’application à différents stades de développement pour tous les consommateurs ou des groupes spécifiques de consommateurs.

Prudence

Lorsque vous créez un paquet d’application, les canaux de version sont activés par défaut. Une fois les canaux de version activés pour un paquet d’application, ils ne peuvent pas être désactivés.

Pour plus d’informations sur l’utilisation des canaux de version pour gérer le cycle de vie des versions d’une application, consultez Publier une application à l’aide des canaux de version.

Pour utiliser le processus précédent de gestion des versions et des correctifs, vous devez explicitement désactiver les canaux de version lors de la création du paquet d’application. Cependant, pour le développement de nouvelles applications, Snowflake recommande d’utiliser les canaux de version afin de gérer le cycle de vie des versions de vos applications.

Pour plus d’informations sur l’utilisation des anciennes fonctionnalités pour la gestion des versions et des correctifs, consultez Develop a new version of an app (Legacy).

Privilèges requis pour créer un paquet d’application

Pour créer un paquet d’application, vous devez disposer du privilège global CREATE APPLICATION PACKAGE accordé à votre rôle.

Création d’un paquet d’application

You can create an application package using one of the following methods:

Create an application package using Snowsight

  1. Connectez-vous à Snowsight.

  2. Dans le menu de navigation, sélectionnez Projects » App packages.

  3. Sélectionnez Create et puis cliquez sur App Package dans le volet de droite.

  4. Saisissez un nom pour votre paquet d’application.

  5. Sélectionnez le consommateur pour qui le paquet d’application est prévu :

    • Sélectionnez Distribute to accounts outside of your organization pour que le paquet d’application soit disponible en dehors de votre organisation. La sélection de cette option déclenche une analyse de sécurité automatisée pour chaque version et chaque correctif définis dans votre paquet d’application.

    • Sélectionnez Distribute to accounts in your organization pour mettre le paquet d’application à la disposition de votre organisation. L’analyse de sécurité automatisée n’est pas lancée.

  6. (Facultatif) Saisissez des commentaires sur le paquet d’application. Ces commentaires ne sont pas visibles pour le consommateur.

  7. Sélectionnez Add.

Création d’un paquet d’application à l’aide de commandes SQL

Pour créer un paquet d’application avec SQL, utilisez la commande CREATE APPLICATION PACKAGE comme indiqué dans l’exemple suivant :

CREATE APPLICATION PACKAGE my_application_package;
Copy

Cette commande crée un paquet d’application nommé my_application_package dans votre compte Snowflake. Par défaut, les canaux de version sont activés pour le paquet d’application.

Après avoir créé un paquet d’application, utilisez la commande SHOW APPLICATION PACKAGES pour voir la liste des paquets d’applications disponibles.

Create an application package using the Snowflake CLI

Si vous utilisez Snowflake CLI pour développer une application, le paquet d’application est créé lorsque vous exécutez la commande snow app run. Cette commande crée un paquet d’application dans votre compte Snowflake, télécharge des fichiers de code dans une zone de préparation, puis crée ou met à niveau une application à partir du paquet d’application.

Grant the required privileges on an application package

Some tasks related to creating or using an application package require specific privileges on the application package. The following table describes the privileges required to perform these tasks:

Privilège

Tâche

ATTACH LISTING

Ajouter un paquet d’application à une annonce.

DEVELOP

Créer une objet APPLICATION en mode développement à partir du paquet d’application.

INSTALL

Créer un objet APPLICATION basé sur le paquet d’application.

MANAGE RELEASES

Spécifier une directive de version, voir la version et le niveau de correctif.

MANAGE VERSIONS

Ajouter une version et un niveau de correctif à un paquet d’application.

OWNERSHIP

Effectuer toutes les tâches ci-dessus.

Grant privileges on an application package using Snowsight

  1. Connectez-vous à Snowsight.

  2. Dans le menu de navigation, sélectionnez Projects » App packages.

  3. Sélectionnez le paquet d’application, puis l’onglet Settings.

  4. Dans la section Privileges sélectionnez l’icône de modification en regard du privilège que vous souhaitez accorder.

  5. Sélectionnez Add Role, puis le rôle auquel vous souhaitez accorder le privilège.

  6. Sélectionnez Save.

Le rôle apparaît à côté du privilège.

Accorder des privilèges sur un paquet d’application à l’aide de commandes SQL

Pour attribuer un privilège sur le paquet d’application à un rôle à l’aide de SQL, utilisez la commande GRANT <privilèges> … TO ROLE comme indiqué dans l’exemple suivant :

GRANT MANAGE RELEASES ON APPLICATION PACKAGE hello_snowflake_package TO ROLE app_release_mgr;
Copy

La commande attribue le privilège MANAGE RELEASES au rôle app_release_mgr. Vous pouvez utiliser la même commande pour accorder les autres privilèges disponibles sur un paquet d’application.

Définir la directive de version par défaut d’un paquet d’application

A release directive determines the version and patch of an app that is available to a consumer when they install the app or when an installed app is automatically upgraded. For information on setting the release directive, see Set the release directive for an app (Legacy)

Permettre aux consommateurs d’installer plusieurs instances d’une application

Les fournisseurs peuvent configurer un paquet d’application pour permettre aux consommateurs d’installer plusieurs instances d’une application.

Pour activer plusieurs instances d’une application, utilisez la clause MULTIPLE_INSTANCES = TRUE des commandes CREATE APPLICATION PACKAGE ou ALTER APPLICATION PACKAGE.

Si plusieurs instances sont autorisées pour une application, les consommateurs peuvent installer un maximum de 10 instances de l’application dans leur compte.

Vous ne pouvez pas définir cette propriété pour un paquet d’application inclus dans un listing d’essai ou payant.

Prudence

Une fois que la propriété MULTIPLE_INSTANCES a été définie sur TRUE, elle ne peut être ni annulée ni définie sur FALSE.

Transfert de propriété d’un paquet d’application

Après avoir créé un paquet d’application, vous pouvez en transférer la propriété à un autre rôle de niveau compte.

Transfert de propriété à l’aide de Snowsight

  1. Connectez-vous à Snowsight.

  2. Dans le menu de navigation, sélectionnez Projects » App packages.

  3. Sélectionnez à côté du paquet d’application que vous souhaitez supprimer, puis sélectionnez Transfer Ownership.

  4. Sous Transfer to, sélectionnez le nouveau rôle au niveau du compte.

  5. Sélectionnez Transfer.

Transfert de propriété à l’aide de commandes SQL

Pour transférer la propriété d’un paquet d’application à un autre rôle au niveau du compte à l’aide de SQL, utilisez la commande GRANT OWNERSHIP comme indiqué dans l’exemple suivant :

GRANT OWNERSHIP ON APPLICATION PACKAGE hello_snowflake_package TO ROLE native_app_dev;
Copy

Supprimer un paquet d’application

Providers with the OWNERSHIP privilege on an application package can remove it from an account. However, providers cannot remove an application package that is currently associated with a listing.

After removing an application package, it is no longer available in the provider account.

Prudence

Après avoir supprimé une annonce et le paquet d’application qui y était associé, le consommateur peut voir l”Snowflake Native App créée à partir du paquet d’application, mais il n’y a pas accès. Si un consommateur tente d’accéder à l”Snowflake Native App, il reçoit une erreur indiquant que le paquet d’applications a été supprimé.

Delete an application package using Snowsight

  1. Connectez-vous à Snowsight.

  2. Dans le menu de navigation, sélectionnez Projects » App packages.

  3. Sélectionnez à côté du paquet d’application que vous souhaitez supprimer, puis sélectionnez Drop.

Delete an application package using SQL commands

Pour supprimer un paquet d’application à l’aide de SQL, exécutez la commande DROP APPLICATION PACKAGE comme indiqué dans l’exemple suivant :

DROP APPLICATION PACKAGE hello_snowflake_package;
Copy