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.

Each version of an app requires its own version of the manifest and setup script:

manifest file:

The manifest file contains information that the application package requires to create and manage a Snowflake Native App. This includes the location of the setup script, version definitions, and configuration information for the app.

For more information, see Manifest-Datei für eine App erstellen.

setup script:

The setup script contains SQL statements that are run when the app is installed, either in the consumer account or locally during development and testing.

For more information, see Create the setup script.

Bemerkung

You can create an application package without creating the manifest file or setup script. However, to develop or test an app, you must upload these files to a stage so they are accessible to the application package.

About release channels

Release channels manage the release lifecycle of Snowflake Native Apps. They allow providers to create and manage versions of an app and to publish the app at different stages of development to all consumers or specific groups of consumers.

Vorsicht

When you create an application package, release channels are enabled by default. After release channels have been enabled for an application package, they can’t be disabled.

For more information on using release channels to manage the release lifecycle of an app, see Veröffentlichen einer App über Release-Kanäle.

To use the previous process for managing versions and patches you must explicitly disable release channels when creating the application package. However, for new app development Snowflake recommends using release channels to manage the release lifecycle of your apps.

For information on using the older features for managing versions and patches, see Develop a new version of an app (Legacy).

Erforderliche Berechtigungen zum Erstellen eines Anwendungspakets

Um ein Anwendungspaket zu erstellen, muss Ihre Rolle über die globale Berechtigung CREATE APPLICATION PACKAGE verfügen.

Anwendungspaket erstellen

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

Create an application package using Snowsight

  1. Melden Sie sich bei Snowsight an.

  2. Wählen Sie im Navigationsmenü die Option Projects » App packages aus.

  3. Wählen Sie Create, und klicken Sie dann im rechten Fensterbereich auf App Package.

  4. Geben Sie einen Namen für Ihr Anwendungspaket ein.

  5. Wählen Sie den vorgesehenen Verbraucher für das Anwendungspaket aus:

    • Wählen Sie Distribute to accounts outside of your organization aus, um das Anwendungspaket außerhalb Ihrer Organisation zur Verfügung zu stellen. Wenn Sie diese Option auswählen, wird ein automatischer Sicherheitsscan für jede in Ihrem Anwendungspaket definierte Version und jeden definierten Patch gestartet.

    • Wählen Sie Distribute to accounts in your organization aus, um das Anwendungspaket innerhalb Ihrer Organisation zur Verfügung zu stellen. Der automatische Sicherheitsscan wird nicht gestartet.

  6. (Optional) Geben Sie Kommentare für das Anwendungspaket ein. Diese Kommentare sind für den Verbraucher nicht sichtbar.

  7. Wählen Sie Add aus.

Anwendungspaket mit SQL-Befehlen erstellen

Um ein Anwendungspaket mit SQL zu erstellen, verwenden Sie den Befehl CREATE APPLICATION PACKAGE wie im folgenden Beispiel gezeigt:

CREATE APPLICATION PACKAGE my_application_package;
Copy

This command creates an application package named my_application_package in your Snowflake account. By default, release channels are enabled for the application package.

Nachdem Sie ein Anwendungspaket erstellt haben, verwenden Sie den Befehl SHOW APPLICATION PACKAGES, um die Liste der verfügbaren Anwendungspakete anzuzeigen.

Create an application package using the Snowflake CLI

If you are using the Snowflake CLI to develop an app, the application package is created when you run the snow app run command. This command creates an application package in your Snowflake account, uploads code files to a stage, then creates or upgrades an app from the application package.

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:

Berechtigung

Aufgabe

ATTACH LISTING

Hinzufügen eines Anwendungspakets zu einem Freigabeangebot

DEVELOP

Erstellen eines APPLICATION-Objekts im Entwicklungsmodus aus dem Anwendungspaket

INSTALL

Erstellen eines APPLICATION-Objekts auf Basis des Anwendungspakets

MANAGE RELEASES

Angeben einer Freigaberichtlinie, Anzeigen von Version und Patch-Level

MANAGE VERSIONS

Hinzufügen einer Version und eines Patch-Levels zu einem Anwendungspaket

OWNERSHIP

Ausführen aller oben genannten Aufgaben

Grant privileges on an application package using Snowsight

  1. Melden Sie sich bei Snowsight an.

  2. Wählen Sie im Navigationsmenü die Option Projects » App packages aus.

  3. Wählen Sie das Anwendungspaket aus, und wählen Sie dann die Registerkarte Settings aus.

  4. Wählen Sie im Bereich Privileges das Bearbeitungssymbol neben der Berechtigung aus, die Sie zuweisen möchten.

  5. Wählen Sie Add Role aus, und wählen Sie dann die Rolle aus, der Sie die Berechtigung zuweisen möchten.

  6. Wählen Sie Save aus.

Die Rolle wird neben der Berechtigung angezeigt.

Erteilen von Berechtigungen für ein Anwendungspaket mit SQL-Befehlen

Um einer Rolle mit SQL eine Berechtigung für das Anwendungspaket zuzuweisen, verwenden Sie den Befehl GRANT <Berechtigungen> … TO ROLE wie im folgenden Beispiel gezeigt:

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

Mit diesem Befehl wird der Rolle app_release_mgr die Berechtigung MANAGE RELEASES zugewiesen. Sie können denselben Befehl verwenden, um die anderen Berechtigungen zuzuweisen, die für ein Anwendungspaket verfügbar sind.

Standard-Release-Richtlinie für ein Anwendungspaket festlegen

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)

Verbrauchern die Installation mehrerer Instanzen einer App erlauben

Anbieter können ein Anwendungspaket so konfigurieren, dass Verbraucher mehrere Instanzen einer Anwendung installieren können.

Um mehrere Instanzen einer Anwendung zu aktivieren, verwenden Sie die MULTIPLE_INSTANCES = TRUE-Klausel der Befehle CREATE APPLICATION PACKAGE oder ALTER APPLICATION PACKAGE.

Wenn für eine App mehrere Instanzen zulässig sind, können Verbraucher maximal 10 Instanzen der App in ihrem Konto installieren.

Sie können diese Eigenschaft nicht für ein Anwendungspaket festlegen, das in einer Testversion oder einem kostenpflichtigen Freigabeangebot enthalten ist.

Vorsicht

Nachdem die Eigenschaft MULTIPLE_INSTANCES auf TRUE eingestellt wurde, kann sie nicht mehr aufgehoben oder auf FALSE eingestellt werden.

Eigentümerschaft an einem Anwendungspaket übertragen

Nachdem Sie ein Anwendungspaket erstellt haben, können Sie die Eigentümerschaft an dem Anwendungspaket auf eine andere Rolle auf Kontoebene übertragen.

Übertragung der Eigentümerschaft über Snowsight

  1. Melden Sie sich bei Snowsight an.

  2. Wählen Sie im Navigationsmenü die Option Projects » App packages aus.

  3. Wählen Sie neben dem Anwendungspaket, für das Sie die Eigentümerschaft übertragen möchten, aus, und wählen Sie dann Transfer Ownership aus.

  4. Wählen Sie unter Transfer to die neue Rolle auf Kontoebene aus.

  5. Wählen Sie Transfer aus.

Eigentümerschaft mit SQL-Befehlen übertragen

Um die Eigentümerschaft an einem Anwendungspaket mithilfe von SQL auf eine andere Rolle auf Kontoebene zu übertragen, verwenden Sie den Befehl GRANT OWNERSHIP wie im folgenden Beispiel gezeigt:

GRANT OWNERSHIP ON APPLICATION PACKAGE hello_snowflake_package TO ROLE native_app_dev;
Copy

Ein Anwendungspaket löschen

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.

Vorsicht

Nach dem Entfernen eines Freigabeangebots und des angehängten Anwendungspakets kann der Verbraucher die Snowflake Native App, die aus dem Anwendungspaket erstellt wurde, zwar anzeigen, aber nicht mehr darauf zugreifen. Wenn ein Verbraucher versucht, auf die Snowflake Native App zuzugreifen, wird eine Fehlermeldung angezeigt, die besagt, dass das Anwendungspaket entfernt wurde.

Delete an application package using Snowsight

  1. Melden Sie sich bei Snowsight an.

  2. Wählen Sie im Navigationsmenü die Option Projects » App packages aus.

  3. Wählen Sie neben dem Anwendungspaket, das Sie entfernen möchten, aus, und wählen Sie dann Drop aus.

Delete an application package using SQL commands

Um ein Anwendungspaket mit SQL zu entfernen, führen Sie den Befehl DROP APPLICATION PACKAGE wie im folgenden Beispiel aus:

DROP APPLICATION PACKAGE hello_snowflake_package;
Copy