Criação e teste de um objeto APPLICATION

Este tópico descreve como criar um objeto APPLICATION a partir de um pacote de aplicativo.

Sobre como criar e testar objetos APPLICATION

O Snowflake Native App Framework permite que o provedor crie um objeto APPLICATION na mesma conta do pacote do aplicativo. Isso permite que os provedores testem um Snowflake Native App antes de publicá-lo aos consumidores. Ele também permite que os provedores testem o Snowflake Native App em uma única conta sem precisar alternar entre contas de provedor e de consumidor.

Privilégios necessários para criar e testar um objeto APPLICATION

Para criar um objeto APPLICATION a partir de um pacote de aplicativo, você deve ter os seguintes privilégios concedidos à sua função:

  • O privilégio de nível de conta CREATE APPLICATION concedido à sua função.

  • O privilégio de nível de objeto INSTALL concedido no pacote de aplicativo.

Os exemplos a seguir mostram como usar o comando GRANT <privilégios> para conceder esses privilégios à sua conta:

GRANT CREATE APPLICATION ON ACCOUNT TO ROLE provider_role;
GRANT INSTALL ON APPLICATION PACKAGE hello_snowflake_package
  TO ROLE provider_role;
Copy

Como usar o privilégio DEVELOP

Por padrão, a função usada para criar um pacote de aplicativo tem permissões para executar o comando CREATE APPLICATION para criar um objeto APPLICATION com base no pacote de aplicativo.

No entanto, em alguns ambientes de desenvolvimento, pode ser necessário permitir que usuários com outras funções criem e testem um pacote de aplicativo. Para isso, conceda o privilégio DEVELOP de nível de objeto no pacote de aplicativo para uma função.

O privilégio DEVELOP no nível da conta fornece os privilégios necessários para criar e testar um objeto APPLICATION com base em um pacote de aplicativo. O privilégio DEVELOP permite que um usuário execute as seguintes tarefas usando o pacote de aplicativo ao qual recebeu acesso:

  • Criar uma versão de um objeto APPLICATION com base em uma versão ou nível de patch especificado no pacote de aplicativo.

  • Atualizar uma versão de um pacote de aplicativo usando o comando ALTER APPLICATION.

  • Crie e atualize um objeto APPLICATION usando arquivos em um estágio nomeado.

  • Ative o modo de depuração em um objeto APPLICATION criado no modo de desenvolvimento.

Para conceder o privilégio DEVELOP para uma função específica, use o comando GRANT <privilégios> como mostrado no exemplo a seguir:

GRANT DEVELOP ON APPLICATION PACKAGE hello_snowflake_package TO ROLE other_dev_role;
Copy

Nota

O privilégio DEVELOP de nível de objeto é específico para um único pacote de aplicativo. Você deve executar GRANT <privilégios> em cada aplicativo no qual você deseja atribuir o privilégio DEVELOP.

Fluxo de trabalho para criar e testar um aplicativo

O Snowflake Native App Framework fornece diferentes maneiras de criar um objeto APPLICATION a partir de um pacote de aplicativo. Isso permite testar um Snowflake Native App antes de publicá-lo aos consumidores. O método usado depende de quais partes do objeto APPLICATION você deseja testar.

As etapas a seguir descrevem um fluxo de trabalho típico para testar um objeto APPLICATION:

  1. Crie um objeto APPLICATION usando o conteúdo em um estágio.

    Isso permite testar rapidamente uma nova versão de um script de configuração ou arquivo de código de aplicativo. Para obter mais informações, consulte Criação de um aplicativo usando arquivos preparados.

  2. Crie um objeto APPLICATION de uma versão ou patch.

    Depois de definir uma versão ou patch para um pacote de aplicativo, você pode testar essa versão criando um objeto APPLICATION usando essa versão. Consulte Criação de um aplicativo a partir de um nível de patch ou versão.

  3. Atualize um objeto APPLICATION.

    Depois de verificar se uma versão de um pacote de aplicativo está funcionando corretamente, você poderá atualizar um objeto APPLICATION existente para a nova versão. Você pode atualizar de duas maneiras:

    • Atualização de um aplicativo usando um estágio (conta única)

    • Atualização de um aplicativo de uma versão (conta única)

  4. Crie um objeto APPLICATION diretamente de um pacote de aplicativo.

    Depois de verificar se o objeto APPLICATION funciona corretamente, você pode criar um objeto APPLICATION a partir de um pacote de aplicativo sem especificar uma versão ou arquivos de estágio. Isso cria o objeto APPLICATION usando a diretriz de versão padrão.

    Para obter mais informações, consulte Criação de um aplicativo usando arquivos preparados.

  5. Instale um Snowflake Native App a partir de uma listagem.

    Depois de verificar em sua conta se o pacote de aplicativo e o objeto APPLICATION estão funcionando corretamente, você poderá adicionar o pacote de aplicativo a uma listagem e testar a instalação usando a Snowsight.

    Para obter mais informações, consulte Criação de um aplicativo usando arquivos preparados.

Criação de um aplicativo

O Snowflake Native App Framework permite que você instale um objeto APPLICATION diretamente na sua conta para testar um Snowflake Native App antes de ser compartilhado com os clientes. O comando CREATE APPLICATION oferece suporte à sintaxe diferente para criar um objeto APPLICATION.

Nota

As seções a seguir partem do princípio que você criou um pacote de aplicativo e o arquivo de manifesto e script de configuração necessários.

Criação de um aplicativo usando arquivos preparados

Você pode criar um objeto APPLICATION usando um arquivo de manifesto e um script de configuração carregado em um estágio nomeado. Isso permite testar alterações nesses arquivos sem precisar adicionar uma versão a um pacote de aplicativo.

Use o comando CREATE APPLICATION para criar um objeto APPLICATION usando arquivos preparados, conforme mostrado no exemplo a seguir:

CREATE APPLICATION hello_snowflake_app FROM APPLICATION PACKAGE hello_snowflake_package
  USING '@hello_snowflake_code.core.hello_snowflake_stage';
Copy

Criação de um aplicativo a partir de um nível de patch ou versão

Depois de especificar uma versão ou nível de patch em um pacote de aplicativo, você pode criar um objeto APPLICATION com base nessa versão ou nível de patch.

Para criar um objeto APPLICATION a partir de uma versão específica, use o comando CREATE APPLICATION conforme mostrado no exemplo a seguir:

CREATE APPLICATION hello_snowflake_app FROM APPLICATION PACKAGE hello_snowflake_package
  USING VERSION v1_0;
Copy

Para criar um objeto APPLICATION a partir de um nível de patch específico, use o comando CREATE APPLICATION conforme mostrado no exemplo a seguir:

CREATE APPLICATION hello_snowflake_app FROM APPLICATION PACKAGE hello_snowflake_package
  USING VERSION v1_0 PATCH 2;
Copy

Criação de um aplicativo baseado em uma diretriz de versão

Depois de especificar uma diretriz de versão em um pacote de aplicativo, você pode criar um objeto APPLICATION baseado na diretriz de versão. Esta pode ser uma diretriz de versão personalizada ou a diretriz de versão padrão.

Para criar um pacote de aplicativo com base em uma diretriz de versão, use o comando CREATE APPLICATION como mostrado no exemplo a seguir:

CREATE APPLICATION hello_snowflake_app FROM APPLICATION PACKAGE hello_snowflake_package;
Copy

Atualização de um aplicativo usando um estágio

Para atualizar um objeto APPLICATION usando arquivos em um estágio nomeado, use o comando ALTER APPLICATION conforme mostrado no exemplo a seguir:

ALTER APPLICATION HelloSnowflake
  UPGRADE USING @CODEDATABASE.CODESCHEMA.AppCodeStage;
Copy

Atualização de um aplicativo a partir de uma versão ou patch

Para atualizar um objeto APPLICATION que foi criado usando uma versão específica, use o comando ALTER APPLICATION conforme mostrado no exemplo a seguir:

ALTER APPLICATION HelloSnowflake
 UPGRADE USING VERSION "v1_1";
Copy

Visualização dos objetos APPLICATION disponíveis

Para ver uma lista de objetos APPLICATION disponíveis para sua conta, use o comando SHOW APPLICATIONS conforme mostrado no exemplo a seguir:

SHOW APPLICATIONS
Copy

Sobre o modo de desenvolvimento

Quando você cria um objeto APPLICATION a partir de um pacote de aplicativo especificando uma versão ou arquivos de aplicativo em um estágio nomeado, o objeto APPLICATION é considerado como estando no modo de desenvolvimento.

O modo de desenvolvimento permite testar e solucionar problemas de um objeto APPLICATION em uma única conta. No modo de desenvolvimento você pode criar e testar um objeto APPLICATION com base em uma versão específica de um pacote de aplicativo. Você também pode criar e testar um objeto APPLICATION usando arquivos de aplicativo em um estágio. Isso permite que você teste rapidamente as alterações no script de configuração ou na lógica do aplicativo.

O modo de desenvolvimento fornece um modo de depuração adicional que permite verificar o estado interno de um objeto APPLICATION que, de outra forma, um consumidor não conseguiria visualizar.

No modo de desenvolvimento, por exemplo, ao executar os comando SHOW ou DESC em objetos dentro do objeto APPLICATION, apenas os objetos aos quais o consumidor recebeu permissão para visualizar serão exibidos. No entanto, no modo DEBUG, você pode ver todos os objetos dentro do objeto APPLICATION.

Ativação do modo de depuração

O Snowflake Native App Framework permite que você teste um objeto APPLICATION no modo de depuração. O modo de depuração permite visualizar e modificar todos os objetos dentro do objeto APPLICATION. Objetos que não são visíveis para um consumidor, por exemplo, objetos não concedidos a uma função de banco de dados ou objetos de conteúdo compartilhado, ficam visíveis nesse modo.

Usar um objeto APPLICATION no modo de depuração requer o seguinte:

  • O objeto APPLICATION deve ser criado no modo de desenvolvimento, o que significa que deve ser baseado em uma versão ou arquivos específicos em um estágio.

  • Você deve definir explicitamente o modo de depuração no objeto APPLICATION.

Nota

O modo de depuração só pode ser ativado e desativado para o objeto APPLICATION criado no modo de desenvolvimento na mesma conta que contém o pacote do aplicativo.

Para ativar o modo de depuração em um objeto APPLICATION, use o comando ALTER APPLICATION conforme mostrado no exemplo a seguir:

ALTER APPLICATION hello_snowflake_app SET DEBUG_MODE = TRUE;
Copy

Este comando ativa o modo de depuração para um objeto APPLICATION chamado hello_snowflake_app. Da mesma forma, para desativar o modo de depuração, use o mesmo comando mostrado no exemplo a seguir:

ALTER APPLICATION hello_snowflake_app SET DEBUG_MODE = FALSE;
Copy

Este comando desativa o modo de depuração para o objeto APPLICATION denominado hello_snowflake_app.

Nota

Para executar este comando, você deve ter o privilégio OWNERSHIP no objeto APPLICATION. Você também deve ter o privilégio DEVELOP no pacote de aplicativo.

Além disso, o objeto APPLICATION deve ser criado no modo de desenvolvimento e na mesma conta do pacote do aplicativo.

Definição de um aplicativo como o contexto ativo

Para definir um objeto APPLICATION como o contexto ativo e atual de uma sessão, execute o comando USE APPLICATION conforme mostrado no exemplo a seguir:

USE APPlICATION hello_snowflake_app;
Copy

Nota

Para executar este comando, você deve ter o privilégio USAGE concedido no objeto APPLICATION para sua função.

Visualização de detalhes de um aplicativo instalado

Para visualizar detalhes de um objeto APPLICATION, execute o comando DESCRIBE APPLICATION conforme mostrado no exemplo a seguir:

DESC APPLICATION hello_snowflake_app;
Copy

No modo de desenvolvimento, esse comando exibe apenas os esquemas que são expostos ao consumidor por meio de funções de banco de dados de aplicativo.

No modo de depuração, esse comando exibe todos os esquemas na instância e no pacote de aplicativo.