
Tekunda Team

Tekunda Team

La plupart des soumissions AppExchange échouent sur une liste courte et prévisible, et le contrôle d'accès arrive en tête. Traitez cette checklist dans l'ordre, d'abord l'application des droits en user mode, ensuite le tri des résultats de scan, enfin les éléments du dossier, et vous éliminez la majorité des motifs de renvoi d'un package. Salesforce annonce 4 à 5 semaines pour une revue type, donc un refus coûte un cycle de release, pas un après-midi.
Tekunda a fait passer des managed packages par la security review AppExchange dans la santé, la logistique et l'industrie. Ce qui suit est l'ordre dans lequel nous travaillons, pas une description du processus.
Corrigez de haut en bas. Les points du haut sont les constats les plus fréquents et les plus coûteux à rattraper, et c'est pour cela que les garder pour la fin fait glisser une soumission d'un cycle.
WITH USER_MODE en SOQL et
AccessLevel.USER_MODE sur les appels Database aux chaînes
de isAccessible() écrites à la main, faciles à laisser incomplètes.
@AuraEnabled peut s'exécuter sans, discrètement.
Déclarez with sharing explicitement sur chaque classe, y compris les
classes internes et utilitaires.
escape="false", lwc:dom="manual" ou
innerHTML doit être assaini avant d'y arriver, pas après.
System.debug. Les Named Credentials et les
protected custom metadata sont ce que les reviewers attendent à la place.
Secure et HttpOnly. Les reviewers regardent
le site que vous leur remettez, pas celui que vous décrivez.
Le seuil n'est pas zéro constat, et il diffère selon le scanner. Le guide de préparation de Salesforce le détaille :
Générez le rapport Code Analyzer avec le jeu de règles AppExchange, pour qu'il corresponde à ce que le reviewer attend :
sf code-analyzer run --rule-selector AppExchange --rule-selector
Recommended:Security --output-file CodeAnalyzerReport.html
La liste des scans obligatoires a changé récemment, vérifiez donc les exigences actuelles des scanners avant de générer quoi que ce soit.
Depuis que Salesforce a retiré le scanner hébergé Chimera le 2025-06-16, vous lancez ce scan dynamique vous-même. Voir Lancer vos propres scans dynamiques après Chimera pour les outils acceptés et le rapport à soumettre.
Sur nos soumissions, quatre catégories reviennent assez souvent comme de vrais faux positifs pour qu'on les anticipe : des constats de contrôle d'accès sur du code appliquant déjà le user mode, des constats de partage sur des classes atteintes uniquement via un contexte où le partage est déjà appliqué, des constats de bibliothèque obsolète basés sur un numéro de version présent dans une static resource embarquée, et du cross-site scripting réfléchi sur des paramètres qui n'atteignent jamais le DOM.
Avoir raison ne suffit pas : c'est le document qui passe. Salesforce demande un document expliquant pourquoi chaque élément signalé ne constitue pas un risque de sécurité et précise qu'il faut être spécifique sur la manière dont vous vous protégez de la vulnérabilité indiquée. Donnez à chaque constat sa propre entrée : scanner et identifiant de règle, fichier et ligne, une phrase décrivant le chemin de la donnée, le contrôle exact qui la protège, et l'endroit où ce contrôle se trouve dans le package. Une réfutation en une ligne revient sous forme de question, et les questions coûtent des semaines. Pour un guide détaillé du format de justification et des erreurs qui le font rejeter, voir Documenter les faux positifs pour la security review Salesforce.
Salesforce indique qu'une solution met généralement 4 à 5 semaines à franchir la revue, et que pour chaque solution payante vendue sur la marketplace des frais de $999 s'appliquent à la première soumission comme à chaque tentative suivante. Les deux faits pointent dans la même direction : traitez le contrôle d'accès en premier, car la soumission la moins chère est celle qu'on ne fait qu'une fois.
Si vous packagez un produit et préférez confier la revue à une équipe qui l'a déjà franchie, Tekunda construit et package des produits AppExchange en tant que PDO Salesforce.
Les applications gratuites doivent-elles passer la security review ?
Oui. Toute solution distribuée sur la marketplace doit passer la revue avant d'être publiée. Les frais documentés par Salesforce concernent les solutions payantes.
Salesforce Code Analyzer suffit-il à lui seul ?
Non. Code Analyzer v5 couvre l'Apex, la Visualforce, le JavaScript et le TypeScript de votre package. Chaque endpoint externe appelé par votre application exige en plus son propre rapport de scan dynamique.
Quelle est la cause de rejet la plus fréquente ?
Le contrôle d'accès. Les requêtes et le DML exécutés en system mode, et les classes qui héritent du partage au lieu de le déclarer, génèrent plus de constats que tout le reste.
Une application Agentforce ou à base d'agents change-t-elle la checklist ?
La même security review s'applique aux solutions agentiques. La différence se joue sur la documentation des flux de données, car chaque service externe que votre agent peut appeler doit être décrit et scanné.
La security review est-elle un événement unique ?
Non. Salesforce réexamine périodiquement les solutions publiées, et chaque fonctionnalité livrée ensuite est tenue au même niveau. La checklist est donc une barrière de release permanente, pas une tâche de lancement.