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 Snowflake Native App Framework exige que cada pacote de aplicativo contenha um arquivo de manifesto. Este arquivo define as propriedades exigidas pelo pacote de aplicativo, incluindo o local do script de configuração e as definições de versão.
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 criar um pacote de aplicativo ou Snowflake Native App.
O arquivo de manifesto deve existir na raiz da estrutura de diretórios no estágio nomeado.
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.
Opcional
- name:
Especifica o nome lógico da versão. Este nome é usado em comandos SQL que gerenciam versões.
- label:
Especifica um nome para a versão exibida aos consumidores.
- comment:
Especifica um comentário para a versão. Este comentário só fica visível quando o provedor executa o comando SHOW VERSIONS.
- artifacts:
Define um bloco relacionado aos recursos que são distribuídos a partir desta versão do pacote.
Obrigatório
- 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
.Obrigatório
- 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.
Obrigatório se Snowflake Native App incluir um aplicativo Streamlit. Opcional, caso contrário.
- extension_code:
Especifica se Snowflake Native App pode executar UDFs e procedimentos armazenados. O valor padrão dessa propriedade é
false
.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. Consulte Configuração do nível de registro para obter informações sobre os valores suportados para esta propriedade.
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.Consulte Configuração do nível de rastreamento para obter os valores suportados da propriedade
trace_level
.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 para o consumidor quando o privilégio é exibido em Snowsight usando Python Permission SDK.Você deve fornecer o máximo de informações possível sobre por que 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.
- - <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.- 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.
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.
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
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
extension_code: true
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"
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