Controle de versão de clean room¶
Nota
Este tópico é para criadores de clean rooms. Os consumidores de clean room não precisam pensar em controle de versão de clean room.
Numeração de versão de clean room¶
As clean rooms Snowflake são versionadas. A versão inicial de uma clean room sem nenhum código Python é a V1.0.0.
O Snowflake cria automaticamente uma nova versão de uma clean room após determinados eventos do provedor, como o upload do código Python ou a ativação de tabelas externas ou Iceberg. O Snowflake cria uma nova versão somente se a verificação de segurança acionada por essa ação for aprovada. As ações que possam criar uma nova versão mencionarão isso na resposta do procedimento. As ações que falharem na verificação de segurança não gerarão uma nova versão. Somente as ações do provedor podem resultar em uma nova versão de clean room; as ações do consumidor não podem.
O Snowflake aumenta apenas o número do patch (o último dígito) a cada nova versão. Portanto, os números de versão para três versões sucessivas seriam V1.0.0, V1.0.1 e V1.0.2.
Nota
As clean rooms são versionadas porque são implementadas como pacotes de aplicativos nativos. Na estrutura de aplicativos nativos do Snowflake, a convenção é que, para a versão V1.0.2, “V1.0” (uma cadeia de caracteres) é o número da versão e 2 (um número inteiro) é o número do patch. A documentação da clean room normalmente usa o termo “versão” para indicar o número inteiro (V1.0.1) em vez de simplesmente o prefixo “V1.0” (como às vezes é usado na estrutura do aplicativo nativo).
Você pode ver o histórico de versões de uma determinada clean room chamando SHOW VERSIONS IN APPLICATION PACKAGE samooha_cleanroom_CLEANROOM_ID;
com o ID da clean room.
Diretriz de versão padrão¶
A cada clean room é atribuída uma diretiva de lançamento padrão pelo criador da clean room. A diretiva de lançamento padrão especifica qual versão da clean room deve ser instalada na conta do usuário. Os consumidores não podem especificar a versão de uma clean room a ser instalada. As atualizações são tratadas automaticamente pela Snowflake conforme os recursos disponíveis ditarem, e pode haver algum atraso antes que a nova versão seja instalada na conta do usuário.
Um provedor de clean room deve especificar a diretiva de lançamento padrão de uma clean room antes que ela possa ser compartilhada inicialmente (interna ou externamente) ou sempre que o provedor fizer o upload do código e a verificação de segurança for aprovada. Se uma nova versão da clean room for gerada, mas a diretiva de lançamento padrão não for atualizada, os consumidores continuarão recebendo a última versão padrão.
Um provedor de clean room pode reverter a diretiva de lançamento padrão para um lançamento anterior, se desejar.
Especifique a diretiva de lançamento padrão para uma clean room chamando provider.set_default_release_directive
.
Nota
Um provedor deve definir a diretiva de lançamento padrão somente ao criar ou modificar uma clean room no código. O controle de versão é tratado automaticamente ao usar o aplicativo Web.
Relativamente poucas chamadas de provedor podem gerar uma nova versão de clean room. Somente se a verificação de segurança for aprovada, o Snowflake gerará uma nova versão. Portanto, você deve verificar o status da varredura de segurança de uma clean room chamando provider.view_cleanrooom_scan_status
antes de atualizar a diretiva de lançamento padrão. A não atualização da diretiva de lançamento padrão não causará um erro, mas a versão mais recente com as suas alterações não será fornecida aos usuários se você não a atualizar.
Exemplos
Liste todos os pacotes de clean room (clean rooms) criados nessa conta Snowflake:
SHOW APPLICATION PACKAGES STARTS WITH 'SAMOOHA_CLEANROOM_';
Liste todas as versões da clean room MY_FIRST_CLEANROOM:
SHOW VERSIONS IN APPLICATION PACKAGE SAMOOHA_CLEANROOM_MY_FIRST_CLEANROOM;
Você deve sempre definir a diretiva de lançamento padrão antes de publicar uma clean room pela primeira vez. Se você não tiver adicionado o código Python, ele deverá ser V1.0.0:
CALL samooha_by_snowflake_local_db.provider.set_default_release_directive(
$cleanroom_name, 'V1_0', '0');
Verifique o status de revisão da verificação antes de definir a versão, se for uma clean room que acabou de tornar externa, ou se já for externa e a versão tiver sido alterada:
CALL samooha_by_snowflake_local_db.provider.view_cleanroom_scan_status('MY_FIRST_CLEANROOM');
-- When REVIEW_STATUS = APPROVED, you can update the default version to the
-- latest version, if you haven't done so already.
SHOW VERSIONS IN APPLICATION PACKAGE SAMOOHA_CLEANROOM_MY_FIRST_CLEANROOM;
CALL samooha_by_snowflake_local_db.provider.set_default_release_directive(
$cleanroom_name, 'V1_0', '<<LATEST_PATCH_NUMBER>>');