Directives et exigences pour l’annonce d’applications sur Snowflake Marketplace

Vue d’ensemble

Les présentes directives définissent les normes appliquées pour la publication d’applications, que soit des Snowflake Native Apps ou des applications connectées, sur Snowflake Marketplace.

Applications natives

Publier sur Snowflake Marketplace

Lorsque votre paquet d’application est prêt à être publié sur Snowflake Marketplace, vous devez le soumettre à Snowflake pour examen et approbation.

Note

Le processus d’approbation requis pour publier une application sur Snowflake Marketplace s’ajoute à l’analyse de sécurité automatisée qui est exécutée lorsque la propriété DISTRIBUTION d’un paquet d’application est définie sur EXTERNAL. Voir Flux d’approbation de la liste Snowflake Native App pour plus de détails.

Avant de créer une annonce, vérifiez que vous comprenez les exigences appliquées et assurez-vous que votre paquet d’application respecte chaque exigence. Si un paquet d’application ne respecte pas ces exigences, votre demande pourrait être rejetée.

Si vous recevez une notification de rejet pour votre paquet d’application, apportez les modifications recommandées et soumettez à nouveau votre paquet d’application pour approbation.

Normes pour les Snowflake Native Apps sur Snowflake Marketplace

Le processus d’examen fonctionnel des Snowflake Native App garantit la qualité des applications publiées sur Snowflake Marketplace. Afin de clarifier ce qui est évalué au cours de ce processus, les normes suivantes s’appliquent à l’ensemble des Snowflake Native Apps distribuées via Snowflake Marketplace.

Utilité immédiate

Les fonctionnalités de l’application doivent être fournies dans le compte de consommateur et l’application doit être opérationnelle une fois installée.

Autonome

Les applications doivent fournir une expérience produit sur Snowflake et faciliter les exigences externes grâce aux fonctionnalités de Snowflake.

Centré sur les données

Les applications doivent être basées sur des cas d’utilisation centrés sur les données qui exploitent les données stockées dans Snowflake.

Transparent, simple et sécurisé

Les applications doivent utiliser les fonctions de Snowflake pour divulguer les exigences de l’application en matière de ressources et d’accès et simplifier le processus de configuration au consommateur.

Normes appliquées

Snowflake utilise les exigences suivantes pour déterminer si une Snowflake Native App répond aux normes de publication de Snowflake Marketplace. Ces exigences sont vérifiées lorsque vous soumettez une annonce avec un paquet d’application joint à Snowflake Marketplace.

  1. Utilité immédiate

    1. Les applications ne doivent pas être des applications shell faisant la promotion de fonctionnalités. Les applications doivent fournir les fonctionnalités annoncées.

    2. Les applications doivent inclure un framework et des instructions clairs pour l’utilisation des fonctionnalités de l’application.

    3. Les fonctionnalités ne doivent pas se bloquer, se figer ou fonctionner de manière anormale.

    4. Les applications doivent lister toutes les identifiants requis et les fournisseurs doivent partager les identifiants requis avec Snowflake lors de la soumission pour les tests.

    5. Si les applications ne sont pas immédiatement utilisables, elles doivent documenter le workflow prévu pour un consommateur, afin que les consommateurs puissent installer et configurer entièrement l’application.

  2. Autonome

    1. Les applications ne doivent pas être des intermédiaires. Par exemple, elles ne doivent pas rediriger les consommateurs vers un service externe pour activer la fonctionnalité principale de l’application.

    2. Les interfaces des applications doivent être accessibles après l’installation directement depuis Snowflake.

    3. Les applications ne peuvent pas utiliser Snowflake Marketplace comme plateforme de distribution pour la vente croisée d’applications ou de services externes.

    4. Les applications qui accèdent à des services externes et utilisent l’authentification utilisateur doivent respecter les normes suivantes :

      1. Les applications peuvent demander aux consommateurs de créer un utilisateur de service dans leur compte Snowflake uniquement pour activer l’accès à un service externe.

        1. Les méthodes d’authentification acceptées sont les jetons d’accès programmatiques (PAT), OAuth ou une paire de clés. L’utilisateur du service ne doit disposer que des autorisations minimales nécessaires à la fonctionnalité de l’application.

      2. Les applications qui nécessitent l’authentification de l’utilisateur ne devraient jamais exiger que le consommateur effectue les opérations suivantes pour l’authentification :

        1. Saisir le nom d’utilisateur et le mot de passe Snowflake du consommateur.

        2. Créer une clé privée/publique et partager la clé privée.

  3. Centré sur les données

    1. Les applications doivent exploiter les données de Snowflake de l’une des manières suivantes :

      1. Partagez les données du compte du fournisseur d’applications.

      2. Utiliser des ensembles de données depuis Snowflake Marketplace.

      3. Accéder aux données du compte consommateur.

  4. Transparent et simple

    1. Tous les privilèges et toutes les références au niveau du compte dont l’appli a besoin doivent être répertoriés dans le fichier manifeste du paquet d’application.

    2. Toutes les exigences en matière de ressources pour la Snowflake Native App doivent être répertoriées dans le fichier marketplace.yml de l’application. L’application doit créer ces ressources dans le cadre de l’installation et de la configuration.

    3. Tous les privilèges et références au niveau du compte énumérés dans le fichier manifeste du paquet d’application doivent être demandés au consommateur par l’intermédiaire de Snowsight ou de Python Permission SDK.

    4. Les fournisseurs doivent fournir un fichier lisez-moi. Les applications qui n’incluent pas de Streamlit ou d’interface utilisateur personnalisée doivent inclure les informations suivantes dans le fichier lisez-moi :

      1. Une description de ce que fait l’application.

      2. Les étapes que le consommateur doit suivre pour configurer l’application après son installation.

      3. Les procédures stockées et les fonctions définies par l’utilisateur que l’application utilise.

      4. Les privilèges requis par l’application.

      5. Exemple SQL de commandes qui montrent aux consommateurs comment utiliser l’application.

    5. Toutes les commandes SQL requises doivent être transmises à l’aide de Snowflake et formatées sous forme de blocs de code.

    6. Si l’application fournit des échantillons de données, vous devez inclure des procédures sur la façon d’utiliser ces échantillons.

    7. Si un paquet d’application contient une application Streamlit mais pas de fichier readme, vous devez configurer une application Streamlit par défaut.

Bonnes pratiques pour la publication d’une Snowflake Native App

Outre les exigences relatives à la soumission d’un paquet d’application à Snowflake Marketplace, Snowflake recommande également les bonnes pratiques suivantes lors de la publication d’une Snowflake Native App :

  • Assurez-vous que tous les fichiers requis sont chargés dans la zone de préparation nommée pour la version de l’application que vous soumettez, y compris :

    • Le fichier manifeste.

    • Le script d’installation.

    • Le fichier README.

    • Toutes les procédures stockées externes ou les fonctions définies par l’utilisateur requises par le paquet d’application.

    • Tous les fichiers Streamlit requis par le paquet d’application.

    • Tout code source externe, y compris Python, Java, etc.

  • Assurez-vous que la version de l’application que vous développez passe l’analyse de sécurité automatisée.

  • Testez la nouvelle version de votre paquet d’application en créant l’objet d’application localement à l’aide de la commande CREATE APPLICATION.

    • N’ajoutez pas de nouvelle version à votre paquet d’application ou ne définissez pas la propriété DISTRIBUTION sur EXTERNAL pendant que vous développez et testez une application. Ces actions déclenchent l’analyse de sécurité automatisée. Au lieu de cela, créez l’objet d’application en utilisant les fichiers sur une zone de préparation nommée.

    • Si votre application comprend une application Streamlit, testez l’application dans Snowsight pour vous assurer que l’application Streamlit fonctionne comme prévu.

    • Vérifiez que les interactions entre l’application Streamlit et les feuilles de calcul Snowflake sont transparentes et que le consommateur n’a pas à faire des allers-retours entre les deux de façon excessive.

  • Examinez toutes les parties d’une annonce avant de la soumettre pour approbation.

  • Assurez-vous qu’il n’y a pas de fautes de frappe ou d’autres erreurs de texte dans l’annonce, le fichier readme et l’application Streamlit.

Recommandations pour les annonces d’essai

  • Lorsqu’une annonce d’essai d’application expire, Snowflake suspend automatiquement l’application pour éviter que les consommateurs encourent des frais de calcul supplémentaires. Snowflake suspend uniquement les objets appartenant à l’application qui sont actuellement actifs. Snowflake ne modifie pas le statut des objets déjà suspendus.

  • Lorsqu’une annonce d’essai est convertie en annonce complète ou payante, Snowflake tente de réactiver l’application en reprenant les tâches, les conteneurs et les pools de calcul. Snowflake ne reprend que les services et les pools de calcul qui ont la propriété auto_resume définie sur false.

Recommandations pour les applications avec conteneurs

  • Les pools de calcul doivent être configurés pour être suspendus automatiquement en combinaison avec les tâches Snowpark Container Services afin d’éviter les nœuds de calcul inactifs.

  • Pour une meilleure disponibilité lors des mises à niveau et pour réduire la latence de démarrage à froid, Snowflake vous recommande de définir le paramètre MIN_NODES supérieur à 1.

  • Si des connexions entre différents services sont requises dans la même application, utilisez le nom DNS du service au lieu de configurer une intégration d’accès externe.

Recommandations pour le partage d’événements

  • Les fournisseurs doivent configurer une application pour émettre des messages de journal et suivre les événements conformes aux définitions d’événements prises en charge pour garantir que les consommateurs comprennent quelles informations sont collectées.

  • Les définitions d’événements obligatoires doivent être limitées aux messages de journal et aux événements de trace requis par l’application. Les définitions d’événements obligatoires excessives ou inutiles doivent être évitées.

  • L’ajout de nouvelles définitions d’événements obligatoires dans une mise à niveau de version doit nécessiter que le consommateur réactive les définitions d’événements pour l’application.

  • Utilisez l’autorisation du SDK Python pour permettre aux consommateurs de partager des événements optionnels.

Applications connectées

Snowflake autorise les fournisseurs SaaS à publier leurs applications connectées sur Snowflake Marketplace. Les applications connectées sont des applications SaaS intégrées qui se connectent en toute sécurité au compte d’un client Snowflake pour lire ou ingérer des données spécifiées dans le cadre de leur workflow. Les applications connectées permettent aux consommateurs d’interagir avec leurs données Snowflake directement via une UI externe.

Exigences requises pour publier une application connectée sur Snowflake Marketplace

  • Niveau réseau partenaire : les fournisseurs doivent être membres du réseau de partenaires Snowflake (SPN) et détenir une dénomination de niveau Select, Premier ou Elite.

  • Exigence CSID : chaque application connectée doit utiliser un identificateur de chaîne de connexion (CSID) pour activer la télémétrie complète et le suivi de l’utilisation. Les fournisseurs sont encouragés à se regrouper en un seul CSID par application ; cependant, plusieurs CSIDs sont également pris en charge si nécessaire. Le ou les CSID doivent être initialement soumis par l’intermédiaire de SPN et seront ensuite requis dans la soumission de votre annonce et vérifiés au cours du processus d’examen.

  • Transparence de la sécurité : les fournisseurs doivent compléter une brève Attestation de sécurité et de traitement des données dans le cadre du processus d’annonce.

  • Type d’annonce : toutes les annonces d’applications connectées doivent exploiter une annonce publique et payante et exécuter des opérations en utilisant des offres standard ou privées.

Normes en cours pour les applications connectées sur Snowflake Marketplace

  1. Contribution à l’écosystème : les applications connectées doivent contribuer de manière significative à l’écosystème Snowflake Data Cloud, en aidant à favoriser la collaboration des données, la consommation ou l’adoption de charges de travail.

  2. Partenariat actif : les fournisseurs doivent être des contributeurs actifs à l’écosystème Snowflake. Pour rester référencés sur la Marketplace, les fournisseurs doivent conserver leur statut au sein du réseau de partenaires au niveau Select ou supérieur, et leur application doit continuer à bénéficier à l’écosystème. Snowflake peut supprimer une annonce si le fournisseur ne contribue plus à l’écosystème (à la discrétion de Snowflake) ou ne répond plus aux normes d’éligibilité des partenaires.