Criação do arquivo de manifesto para um pacote de aplicativo¶
Este tópico descreve como criar o arquivo de manifesto para um pacote de aplicativo.
Sobre o arquivo de 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.
O arquivo de manifesto tem os seguintes requisitos:
O nome do arquivo de manifesto deve ser
manifest.yml
.O arquivo de manifesto deve ser carregado em um estágio nomeado para que fique acessível ao pacote do aplicativo.
O arquivo de manifesto deve existir na raiz da estrutura de diretório no estágio nomeado onde outros arquivos do aplicativo são armazenados.
Referência do arquivo de manifesto¶
A seguir estão as propriedades válidas que o arquivo manifest.yml
pode conter:
- manifest_version:
Especifica a versão do arquivo de manifesto.
Obrigatório
- version:
Define um bloco contendo parâmetros relacionados a uma versão. Para mais informações sobre versões e patches, consulte Sobre versões e patches.
Opcional
- name:
Especifica o nome lógico da versão. Este nome é usado em comandos SQL que gerenciam versões.
Opcional
- patch:
Especifica o número de patch padrão. Este número é usado em comandos SQL que gerenciam versões. Números de patch especificados usando SQL têm prioridade. Para mais informações sobre versões e patches, consulte Sobre versões e patches.
Opcional
- label:
Especifica um nome para a versão exibida aos consumidores.
Opcional
- comment:
Especifica um comentário para a versão. Este comentário só fica visível quando o provedor executa o comando SHOW VERSIONS.
Opcional
- artifacts:
Define um bloco relacionado aos recursos que são distribuídos a partir desta versão do pacote.
Opcional
- readme:
Especifica um caminho para um arquivo leia-me que fornece uma visão geral do Snowflake Native App no formato markdown. No caso de um aplicativo Streamlit, se nenhum valor for especificado para a propriedade
default_streamlit
, o conteúdo desse arquivo será exibido aos consumidores ao visualizar o Snowflake Native App instalado.A localização deste arquivo é especificada em relação à localização do arquivo
manifest.yml
.Opcional
- setup_script:
Especifica o caminho e o nome do arquivo do script SQL que é executado quando o Snowflake Native App é instalado. Se você não especificar um valor, o valor padrão será
setup.sql
no mesmo diretório do arquivomanifest.yml
.Opcional
- default_streamlit:
Se Snowflake Native App incluir um aplicativo Streamlit, essa propriedade especificará o esquema e o nome do aplicativo Streamlit padrão disponível para os consumidores.
Opcional
- configuration:
Especifica um bloco contendo as propriedades de configuração para Snowflake Native App.
Opcional
- log_level:
Especifica o nível de registro em log a ser usado para o Snowflake Native App instalado. Para obter informações sobre valores compatíveis para esta propriedade, consulte Definição de níveis para registro, métricas e rastreamento.
Opcional
Padrão: desativado
- trace_level:
Especifica o nível de evento de rastreamento a ser usado para o Snowflake Native App instalado. Quando um provedor ativa o rastreamento, um Snowflake Native App captura automaticamente as horas de início e término de todas as consultas e chamadas de procedimento armazenado.
Nota
Publicar um Snowflake Native App com a propriedade
trace_level
definida com um valor diferente deOFF
pode expor chamadas para procedimentos armazenados ocultos a qualquer usuário na conta do consumidor que possa visualizar a tabela de eventos.Para os valores compatíveis da propriedade
trace_level
, consulte Definição de níveis para registro, métricas e rastreamento.Opcional
Padrão: desativado
- privileges:
Define um bloco contendo os privilégios que o consumidor deve conceder quando o Snowflake Native App for instalado.
Opcional
Padrão: uma lista vazia
- <privilege name>:
Especifica o nome do privilégio.
- description:
Fornece uma descrição do privilégio que está sendo solicitado. O texto especificado em
description
é exibido ao consumidor quando o privilégio é exibido no Snowsight usando o Python Permission SDK, ou quando o comando SHOW PRIVILEGES é executado.Forneça o máximo de informações possível sobre o motivo pelo qual o Snowflake Native App precisa desse privilégio e se o privilégio é obrigatório ou opcional.
Obrigatório se
privileges
for especificado.
- references:
Define um bloco contendo as referências definidas pelo provedor. O consumidor deve vincular essas referências aos objetos em sua conta.
Opcional
- - <reference name>:
Especifica o nome da referência.
- label:
Fornece uma descrição da referência que o consumidor pode visualizar quando o Snowflake Native App é instalado.
Obrigatório se
references
for especificado.- description:
Fornece uma descrição da referência solicitada. O texto especificado em
description
é exibido ao consumidor quando a referência é exibida em Snowsight usando o Python Permission SDK.É necessário fornecer o máximo de informações possível sobre o motivo pelo qual o Snowflake Native App precisa dessa referência e se o privilégio é obrigatório ou opcional.
Obrigatório se
privileges
for especificado.- privileges:
Especifica os privilégios exigidos pela referência.
Obrigatório se
references
for especificado.- object_type:
Especifica o tipo de objeto associado à referência, por exemplo, um esquema e tabela ou uma integração de API.
Obrigatório se
references
for especificado.- multi_valued:
Especifica que mais de um objeto está associado à referência. Use esta propriedade para vincular vários objetos de consumidor à mesma referência. Quando essa propriedade é especificada, as mesmas operações são executadas em objetos com uma única referência de valor. A propriedade também pode ser usada com objetos com referências de vários valores. Consulte Solicitação de referências e privilégios de nível de objeto de consumidores para saber mais sobre operações de referência do Snowflake Native App Framework.
Opcional
Padrão: falso
- register_callback:
Especifica o nome da função de retorno de chamada usada para chamar a referência.
Obrigatório se
references
for especificado.- retorno_de_chamada_configuração:
Especifica o nome da função de retorno de chamada que fornecerá a configuração desejada para o objeto ser vinculado a esta referência.
Esta propriedade é necessária se
object_type
forEXTERNAL ACCESS INTEGRATION
ouSECRET
. Esta propriedade não se aplica a outros tipos de objetos.- required_at_setup:
Indica que as referências devem ser vinculadas quando o aplicativo é instalado. Aceita: TRUE ou FALSE. O padrão é FALSE.
Obrigatório se
references
for especificado.
Exemplo do arquivo de manifesto¶
O exemplo a seguir mostra um arquivo de manifesto típico com valores especificados para todas as propriedades com suporte:
manifest_version: 1 # required
version:
name: hello_snowflake
patch: 3
label: "v1.0"
comment: "The first version of a Snowflake Native App"
artifacts:
readme: readme.md
setup_script: scripts/setup.sql
default_streamlit: streamlit/ux_schema.homepage_streamlit
configuration:
log_level: debug
trace_level: always
privileges:
- EXECUTE TASK:
description: "Run ingestion tasks for replicating Redshift data"
- EXECUTE MANAGED TASK:
description: "To run serverless ingestion tasks for replicating Redshift data"
- CREATE WAREHOUSE:
description: "To create warehouses for executing tasks"
- MANAGE WAREHOUSES:
description: "To manage warehouses for optimizing the efficiency of your accounts"
- CREATE DATABASE:
description: "To create sink databases for replicating Redshift data"
- IMPORTED PRIVILEGES ON SNOWFLAKE DB:
description: "To access account_usage views"
- READ SESSION:
description: "To allow Streamlit to access some context functions"
references:
- consumer_table:
label: "Consumer table"
description: "A table in the consumer account that exists outside the APPLICATION object."
privileges:
- SELECT
- INSERT
- UPDATE
object_type: Table
multi_valued: true
register_callback: config.register_reference
- consumer_external_access:
label: "Consumer external access integration"
description: "An external access integration in the consumer account that exists outside the APPLICATION object."
privileges:
- USAGE
object_type: EXTERNAL ACCESS INTEGRATION
register_callback: config.register_reference
configuration_callback: config.get_configuration_for_reference
required_at_setup: true