Versionnage de clean room

Note

Ce sujet s’adresse aux créateurs de clean rooms. Les consommateurs Clean room n’ont pas besoin de se préoccuper de la gestion des versions des clean rooms.

Numérotation des versions de Clean room

Les clean rooms de Snowflake sont versionnées. La version initiale d’une clean room sans aucun code Python est V1.0.0.

Snowflake crée automatiquement une nouvelle version d’une salle blanche après certains événements fournisseurs, tels que l’importation de code Python ou l’activation de tables externes ou Apache Iceberg™. Snowflake crée une nouvelle version uniquement si l’analyse de sécurité déclenchée par cette action réussit. Relativement peu d’actions du fournisseur peuvent générer une nouvelle version de salle blanche, et les procédures qui créent une nouvelle version mentionnent cette nouvelle version dans la réponse de procédure.

Les actions qui échouent à l’analyse de sécurité ne génèrent pas de nouvelle version.

Seules les actions du fournisseur peuvent donner lieu à une nouvelle version de salle blanche ; les actions du consommateur ne le peuvent pas.

Snowflake n’incrémente que le numéro de patch (le dernier chiffre) à chaque nouvelle version. Ainsi, les numéros de version pour trois versions successives seraient V1.0.0, V1.0.1 et V1.0.2.

Clean rooms fait l’objet d’une version car elles sont mises en œuvre sous la forme de paquets d’applications natives. Dans le cadre de l’application native de Snowflake, la convention est que pour la version V1.0.2, V1.0 (une chaîne) est le numéro de version et 2 (un entier) est le numéro de correctif. La documentation Clean room utilise généralement le terme « version » pour indiquer le numéro entier (V1.0.1) plutôt que le simple préfixe « V1.0 » (comme parfois utilisé dans le Native Apps Framework).

Vous pouvez voir l’historique des versions et l’état des révisions pour une salle blanche donnée en appelant SHOW VERSIONS IN APPLICATION PACKAGE samooha_cleanroom_CLEANROOM_ID; avec l‘ID de la salle blanche.

Directive de version par défaut

Chaque salle blanche se voit attribuer une directive de version par défaut par le fournisseur de la salle blanche. La directive de version par défaut spécifie quelle version de la salle blanche doit être installée ou chargée dans le compte de l’utilisateur. Les consommateurs ne peuvent pas spécifier la version d’une salle blanche à installer. Les mises à jour sont gérées automatiquement par Snowflake selon les ressources disponibles. Pour cette raison, l’installation de la nouvelle version sur le compte de l’utilisateur peut prendre un certain temps.

Un fournisseur de clean room doit spécifier la directive de version par défaut d’une clean room avant que la clean room ne puisse être partagée initialement (en interne ou en externe) ou chaque fois que le fournisseur télécharge le code et que le scan de sécurité passe. Si une nouvelle version de la clean room est générée mais que la directive de libération par défaut n’est pas mise à jour, les consommateurs continueront à se voir servir la dernière version par défaut.

Vous devez toujours définir la directive de version par défaut avant de publier une salle blanche. Si vous n’avez pas ajouté de code Python, il doit s’agir de la version V1.0.0, comme indiqué ici :

CALL samooha_by_snowflake_local_db.provider.set_default_release_directive(
  $cleanroom_name, 'V1_0', '0');
Copy

Un fournisseur de clean rooms peut, s’il le souhaite, ramener la directive de version par défaut à une version antérieure.

Spécifiez la directive de version par défaut pour une clean room en appelant provider.set_default_release_directive.

Un fournisseur doit définir la directive de version par défaut uniquement lors de la création ou de la modification d’une salle blanche dans le code. La gestion des versions est gérée automatiquement lors de l’utilisation de l’UI des salles blanches.

Snowflake génère une nouvelle version uniquement si l’analyse de sécurité déclenchée par une action du fournisseur réussit. Vous devez donc vérifier le statut de l’analyse de sécurité pour une salle blanche en appelant provider.view_cleanrooom_scan_status avant de mettre à jour la directive de version par défaut. Le fait de ne pas mettre à jour la directive de version par défaut n’entraînera pas d’erreur, mais la nouvelle version avec vos modifications ne sera pas publiée auprès des utilisateurs si vous ne mettez pas à jour la directive de version par défaut.

Salles blanches avec erreurs

Si vous publiez une salle blanche avec une erreur, ce qui se produit lorsque l’analyse de sécurité échoue ou que vous chargez du code Python avec une erreur de syntaxe, un correctif est généré, mais vous ne pouvez pas utiliser cette version comme directive de version par défaut. Tant que vous n’avez pas publié une version corrigée, tout correctif supplémentaire intégrera l’erreur du correctif précédent qui a échoué et entraînera également l’échec du correctif de la salle blanche.

Aide-mémoire sur la gestion des versions

Liste de tous les paquets de clean rooms (clean rooms) créés dans ce compte Snowflake :

SHOW APPLICATION PACKAGES STARTS WITH 'SAMOOHA_CLEANROOM_';
Copy

Liste de toutes les versions de la clean room MY_FIRST_CLEANROOM:

SHOW VERSIONS IN APPLICATION PACKAGE SAMOOHA_CLEANROOM_MY_FIRST_CLEANROOM;
Copy

Consultez votre directive de version par défaut actuelle :

SHOW RELEASE DIRECTIVES IN APPLICATION PACKAGE SAMOOHA_CLEANROOM_<your_clean_room_name>;
Copy

Vérifiez le statut de révision de l’analyse avant de paramétrer la version s’il s’agit d’une clean room que vous venez de rendre externe, ou si elle est déjà externe et que la version a changé :

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>>');
Copy