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 clean room après certains événements du fournisseur, tels que le téléchargement de code Python ou l’activation de tables externes ou Iceberg. Snowflake ne crée une nouvelle version que si l’analyse de sécurité déclenchée par cette action est concluante. Les actions susceptibles de créer une nouvelle version le mentionneront dans la réponse à la 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 la clean room, ce qui n’est pas le cas des actions du consommateur.
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.
Note
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 consulter l’historique des versions d’une clean room donnée en appelant SHOW VERSIONS IN APPLICATION PACKAGE samooha_cleanroom_CLEANROOM_ID;
avec l’ID de la clean room.
Directive de version par défaut¶
Une directive de version par défaut est attribuée à chaque clean room par le créateur de la clean room. La directive de version par défaut spécifie la version de la clean room qui doit être installée dans le compte de l’utilisateur. Les consommateurs ne peuvent pas spécifier la version d’une clean room à installer. Les mises à jour sont gérées automatiquement par Snowflake dès que les ressources disponibles le permettent, et il peut s’écouler un certain temps avant que la nouvelle version ne soit installée sur le compte de l’utilisateur.
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.
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
.
Note
Un fournisseur doit définir la directive de version par défaut uniquement lorsqu’il crée ou modifie une clean room dans le code. Les versions sont gérées automatiquement lorsque vous utilisez l’application web.
Un nombre relativement faible d’appels de fournisseurs peut générer une nouvelle version de clean room. Ce n’est que si l’analyse de sécurité est concluante que Snowflake génère une nouvelle version. Par conséquent, vous devez vérifier le statut de l’analyse de sécurité pour une clean room 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 ne provoquera pas d’erreur, mais la nouvelle version contenant vos modifications ne sera pas proposée aux utilisateurs si vous ne la mettez pas à jour.
Exemples
Liste de tous les paquets de clean rooms (clean rooms) créés dans ce compte Snowflake :
SHOW APPLICATION PACKAGES STARTS WITH 'SAMOOHA_CLEANROOM_';
Liste de toutes les versions de la clean room MY_FIRST_CLEANROOM:
SHOW VERSIONS IN APPLICATION PACKAGE SAMOOHA_CLEANROOM_MY_FIRST_CLEANROOM;
Vous devez toujours paramétrer la directive de version par défaut avant de publier une clean room pour la première fois. Si vous n’avez pas ajouté de code Python, il devrait s’agir de la version 1.0.0 :
CALL samooha_by_snowflake_local_db.provider.set_default_release_directive(
$cleanroom_name, 'V1_0', '0');
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>>');