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.
Snowflake automatically creates a new version of a clean room after certain provider events, such as uploading Python code or enabling external or Apache Iceberg™ tables. Snowflake creates a new version only if the security scan triggered by this action passes. Relatively few provider actions can generate a new clean room version, and procedures that create a new version mention the new version in the procedure response.
Actions that fail the security scan don’t generate a new version.
Only provider actions can result in a new clean room version; consumer actions cannot.
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.
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 e o status da revisão de uma determinada sala limpa chamando SHOW VERSIONS IN APPLICATION PACKAGE samooha_cleanroom_CLEANROOM_ID; com o ID da sala limpa.
Diretriz de versão padrão¶
Each clean room is assigned a default release directive by the clean room provider. The default release directive specifies which version of the clean room should be installed or loaded in the user’s account. Consumers cannot specify which version of a clean room to install. Updates are handled automatically by Snowflake as available resources dictate, and there can be a delay before the new version is installed on the user’s account.
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.
You must always set the default release directive before publishing a clean room. If you haven’t added Python code, it should be V1.0.0, as shown here:
CALL samooha_by_snowflake_local_db.provider.set_default_release_directive(
$cleanroom_name, 'V1_0', '0');
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.
Um provedor deve definir a diretiva de lançamento padrão somente ao criar ou modificar uma sala limpa no código. O controle de versão é feito automaticamente ao usar a UI de salas limpas.
Snowflake generates a new version only if the security scan triggered by a provider action passes. Therefore you should check the security
scan status for a clean room by calling provider.view_cleanrooom_scan_status before updating the default release directive. Not
updating the default release directive will not cause an error, but the newer version with your changes will not be published to users if you
don’t update the default release directive.
Salas limpas com erros¶
If you publish a clean room with an error, which happens when the security scan fails or you upload Python code with a syntax error, a patch is generated, but you cannot use that version as a default release directive. Until you publish a fixed version, any additional patches incorporate the error from the previous failed patch and also result in a failed clean room patch.
Versioning cheat sheet¶
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;
See your current default release directive:
SHOW RELEASE DIRECTIVES IN APPLICATION PACKAGE SAMOOHA_CLEANROOM_<your_clean_room_name>;
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>>');