
Tekunda Team

Tekunda Team

La plupart des soumissions AppExchange echouent sur une liste courte et previsible, et le controle d'acces arrive en tete. Traitez cette checklist dans l'ordre, d'abord l'application des droits en user mode, ensuite le tri des resultats de scan, enfin les elements du dossier, et vous eliminez la majorite des motifs de renvoi d'un package. Salesforce annonce 4 a 5 semaines pour une revue type, donc un refus coute un cycle de release, pas un apres-midi.
Tekunda a fait passer des managed packages par la security review AppExchange dans la sante, 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 frequents et les plus couteux a 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 chaines
de isAccessible() ecrites a la main, faciles a laisser incompletes.
@AuraEnabled peut s'executer sans, discretement.
Declarez with sharing explicitement sur chaque classe, y compris les
classes internes et utilitaires.
escape="false", lwc:dom="manual" ou
innerHTML doit etre assaini avant d'y arriver, pas apres.
System.debug. Les Named Credentials et les
protected custom metadata sont ce que les reviewers attendent a la place.
Le seuil n'est pas zero constat, et il differe selon le scanner. Le guide de preparation de Salesforce le detaille :
Depuis que Salesforce a retire le scanner heberge Chimera le 2025-06-16, vous lancez ce scan dynamique vous-meme. Voir Lancer vos propres scans dynamiques apres Chimera pour les outils acceptes et le rapport a soumettre.
Sur nos soumissions, quatre categories reviennent assez souvent comme de vrais faux positifs pour qu'on les anticipe : des constats de controle d'acces sur du code appliquant deja le user mode, des constats de partage sur des classes atteintes uniquement via un contexte ou le partage est deja applique, des constats de bibliotheque obsolete bases sur un numero de version present dans une static resource embarquee, et du cross-site scripting reflechi sur des parametres qui n'atteignent jamais le DOM.
Avoir raison ne suffit pas : c'est le document qui passe. Salesforce demande un document expliquant pourquoi chaque element signale ne constitue pas un risque de securite et precise qu'il faut etre specifique sur la maniere dont vous vous protegez de la vulnerabilite indiquee. Donnez a chaque constat sa propre entree : scanner et identifiant de regle, fichier et ligne, une phrase decrivant le chemin de la donnee, le controle exact qui la protege, et l'endroit ou ce controle se trouve dans le package. Une refutation en une ligne revient sous forme de question, et les questions coutent des semaines. Pour un guide detaille 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 generalement 4 a 5 semaines a franchir la revue, et que pour chaque solution payante vendue sur la marketplace des frais de $999 s'appliquent a la premiere soumission comme a chaque tentative suivante. Les deux faits pointent dans la meme direction : traitez le controle d'acces en premier, car la soumission la moins chere est celle qu'on ne fait qu'une fois.
Si vous packagez un produit et preferez confier la revue a une equipe qui l'a deja 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 distribuee sur la marketplace doit passer la revue avant d'etre publiee. Les frais documentes par Salesforce concernent les solutions payantes.
Salesforce Code Analyzer suffit-il a lui seul ?
Non. Code Analyzer v5 couvre l'Apex, la Visualforce, le JavaScript et le TypeScript de votre package. Chaque endpoint externe appele par votre application exige en plus son propre rapport de scan dynamique.
Quelle est la cause de rejet la plus frequente ?
Le controle d'acces. Les requetes et le DML executes en system mode, et les classes qui heritent du partage au lieu de le declarer, generent plus de constats que tout le reste.
Une application Agentforce ou a base d'agents change-t-elle la checklist ?
La meme security review s'applique aux solutions agentiques. La difference se joue sur la documentation des flux de donnees, car chaque service externe que votre agent peut appeler doit etre decrit et scanne.