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.

Cada versão de um app requer sua própria versão do manifesto e do script de configuração:

arquivo do manifesto:

O arquivo de manifesto contém informações que o pacote do aplicativo requer para criar e gerenciar um Snowflake Native App. Isso inclui o local do script de configuração, definições de versão e informações de configuração do aplicativo.

For more information, see Criação do arquivo de manifesto para um aplicativo.

script de configuração:

O script de configuração contém instruções SQL executadas quando o app é instalado, seja na conta do consumidor ou localmente durante o desenvolvimento e os testes.

Para obter mais informações, consulte Create the setup script.

Nota

É possível criar um pacote de aplicativo sem criar o arquivo de manifesto ou o script de configuração. Entretanto, para desenvolver ou testar um aplicativo, você deve carregar esses arquivos em uma área de preparação para que fiquem acessíveis ao pacote do aplicativo.

Sobre os canais de lançamento

Os canais de lançamento gerenciam o ciclo de vida de lançamento de Snowflake Native Apps. Eles permitem que os provedores criem e gerenciem versões de um app e publiquem o app em diferentes áreas de preparação de desenvolvimento para todos os consumidores ou grupos específicos de consumidores.

Cuidado

Quando você cria um pacote de aplicativo, os canais de lançamento são ativados por padrão. Depois que os canais de lançamento tiverem sido habilitados para um pacote de aplicativo, eles não poderão ser desabilitados.

Para obter mais informações sobre como usar os canais de lançamento para gerenciar o ciclo de vida de lançamento de um aplicativo, consulte Publicar um aplicativo usando canais de lançamento.

Para usar o processo anterior para gerenciar versões e patches, você deve desativar explicitamente os canais de lançamento ao criar o pacote de aplicativo. No entanto, para o desenvolvimento de novos apps, a Snowflake recomenda o uso de canais de lançamento para gerenciar o ciclo de vida de lançamento de seus apps.

Para obter informações sobre como usar recursos mais antigos para gerenciar versões e patches, consulte Develop a new version of an app (Legacy).

Privilégios necessários para criar um pacote de aplicativo

Para criar um pacote de aplicativo, você deve ter o privilégio global CREATE APPLICATION PACKAGE concedido à sua função.

Criação de um pacote de aplicativo

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

Create an application package using Snowsight

  1. Faça login no Snowsight.

  2. No menu de navegação, selecione Projects » App packages.

  3. Selecione Create e clique em App Package no painel direito.

  4. Digite um nome para seu pacote de aplicativo.

  5. Selecione o consumidor pretendido para o pacote de aplicativo:

    • Selecione Distribute to accounts outside of your organization para disponibilizar o pacote de aplicativo fora de sua organização. Ao selecionar esta opção, é iniciada uma varredura de segurança automatizada para cada versão e patch definido em seu pacote de aplicativo.

    • Selecione Distribute to accounts in your organization para disponibilizar o pacote de aplicativo em sua organização. A varredura de segurança automatizada não é iniciada.

  6. (Opcional) Insira comentários para o pacote do aplicativo. Esses comentários não ficam visíveis para o consumidor.

  7. Selecione Add.

Criação de um pacote de aplicativo usando comandos SQL

Para criar um pacote de aplicativo usando SQL, use o comando CREATE APPLICATION PACKAGE como mostrado no exemplo a seguir:

CREATE APPLICATION PACKAGE my_application_package;
Copy

Esse comando cria um pacote de aplicativo chamado my_application_package em sua conta Snowflake. Por padrão, os canais de lançamento estão habilitados para o pacote de aplicativo.

Depois de criar um pacote de aplicativo, use o comando SHOW APPLICATION PACKAGES para visualizar a lista de pacotes de aplicativos disponíveis.

Create an application package using the Snowflake CLI

Se você estiver usando a Snowflake CLI para desenvolver um aplicativo, o pacote de aplicativo é criado quando você executa o comando snow app run. Cria um pacote de app na sua conta Snowflake, carrega arquivos de código para sua área de preparação e, em seguida, cria ou atualiza um objeto de app a partir do pacote de app.

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

Tarefa

ATTACH LISTING

Adicionar um pacote de aplicativo a uma listagem.

DEVELOP

Crie um objeto APPLICATION no modo de desenvolvimento a partir do pacote de aplicativo.

INSTALL

Crie um objeto APPLICATION com base no pacote de aplicativo.

MANAGE RELEASES

Especificar uma diretriz de versão, visualizar a versão e o nível do patch.

MANAGE VERSIONS

Adicione uma versão e um nível de patch a um pacote de aplicativo.

OWNERSHIP

Executar todas as tarefas acima.

Grant privileges on an application package using Snowsight

  1. Faça login no Snowsight.

  2. No menu de navegação, selecione Projects » App packages.

  3. Selecione o pacote de aplicativo e, em seguida, selecione a aba Settings.

  4. Na seção Privileges, selecione o ícone de edição ao lado do privilégio que deseja conceder.

  5. Selecione Add Role, em seguida, selecione a função à qual deseja conceder o privilégio.

  6. Selecione Save.

A função aparece ao lado do privilégio.

Concessão de privilégios em um pacote de aplicativo usando os comandos SQL

Para conceder um privilégio no pacote de aplicativo a uma função usando SQL, use o comando GRANT <privilégios> … TO ROLE como mostrado no exemplo a seguir:

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

Este comando concede o privilégio MANAGE RELEASES à função app_release_mgr. Você pode usar o mesmo comando para conceder os outros privilégios disponíveis em um pacote de aplicativo.

Definição da diretriz de versão padrão para um pacote de aplicativo

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)

Como permitir que os consumidores instalem várias instâncias de um aplicativo

Os provedores podem configurar um pacote de aplicativos para permitir que os consumidores instalem várias instâncias de um aplicativo.

Para habilitar várias instâncias de um aplicativo, use a cláusula MULTIPLE_INSTANCES = TRUE dos comandos CREATE APPLICATION PACKAGE ou ALTER APPLICATION PACKAGE.

Se várias instâncias forem permitidas para um aplicativo, os consumidores poderão instalar um máximo de 10 instâncias do aplicativo em sua conta.

Você não pode definir essa propriedade para um pacote de aplicativos incluído em uma listagem de avaliação ou paga.

Cuidado

Depois de definir a propriedade MULTIPLE_INSTANCES como TRUE, ela não pode ser cancelada ou definida como FALSE.

Transferência da propriedade de um pacote de aplicativo

Depois de criar um pacote de aplicativo, você pode transferir a propriedade do pacote de aplicativo para outra função no nível da conta.

Transferência de propriedade usando Snowsight

  1. Faça login no Snowsight.

  2. No menu de navegação, selecione Projects » App packages.

  3. Selecione ao lado do pacote de aplicativo do qual você deseja transferir a propriedade e selecione Transfer Ownership.

  4. Em Transfer to, selecione a nova função no nível da conta.

  5. Selecione Transfer.

Transferência de propriedade usando comandos SQL

Para transferir a propriedade de um pacote de aplicativo para uma função de nível de conta diferente usando SQL, use o comando GRANT OWNERSHIP como mostrado no exemplo a seguir:

GRANT OWNERSHIP ON APPLICATION PACKAGE hello_snowflake_package TO ROLE native_app_dev;
Copy

Como excluir um pacote de aplicativos

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.

Cuidado

Depois de remover uma listagem e o pacote de aplicativo anexado, o consumidor pode visualizar, mas não acessar o Snowflake Native App criado a partir do pacote de aplicativo. Se um consumidor tentar acessar o Snowflake Native App, ele receberá um erro indicando que o pacote de aplicativo foi removido.

Delete an application package using Snowsight

  1. Faça login no Snowsight.

  2. No menu de navegação, selecione Projects » App packages.

  3. Selecione ao lado do pacote de aplicativo que deseja remover e selecione Drop.

Delete an application package using SQL commands

Para remover um pacote de aplicativo usando SQL, execute o comando DROP APPLICATION PACKAGE conforme mostrado no exemplo a seguir:

DROP APPLICATION PACKAGE hello_snowflake_package;
Copy