Publication sur AppExchange
Phase 1 : Pré-vol (local)
Section intitulée « Phase 1 : Pré-vol (local) »Exécutez ces vérifications avant de toucher l’organisation. Corrigez tout ce qui apparaît.
1.1 Salesforce Code Analyzer v5 — scan complet
Section intitulée « 1.1 Salesforce Code Analyzer v5 — scan complet »# Installer (une fois)sf plugins install @salesforce/plugin-code-analyzer
# Exécuter TOUTES les règles (PMD, ESLint, RetireJS, Regex, Flow, CPD)sf code-analyzer run \ --workspace force-app \ --output-file docs/scan-results.html
# Exécuter les règles spécifiques à AppExchangesf code-analyzer run \ --rule-selector AppExchange \ --workspace force-app \ --output-file docs/scan-appexchange.html
# Exécuter uniquement les règles étiquetées Securitysf code-analyzer run \ --rule-selector Security \ --workspace force-app \ --output-file docs/scan-security.html
# Seuil de gravité — échouer sur High ou Critical (CI/CD)sf code-analyzer run \ --rule-selector AppExchange \ --workspace force-app \ --severity-threshold 2 \ --output-file docs/scan-appexchange.htmlTolérance zéro sur : Critical (1) et High (2).
Medium (3) et en dessous — documenter comme faux positifs dans docs/FALSE-POSITIVES.md.
1.2 ESLint (LWC)
Section intitulée « 1.2 ESLint (LWC) »npm run lint1.3 Tests Jest LWC
Section intitulée « 1.3 Tests Jest LWC »npm run test:unitPhase 2 : Tests d’organisation et couverture
Section intitulée « Phase 2 : Tests d’organisation et couverture »2.1 Exécuter tous les tests Apex
Section intitulée « 2.1 Exécuter tous les tests Apex »sf apex run test \ --code-coverage \ --result-format human \ --wait 10 \ --target-org FlexiFREERequis : >= 75% de couverture globale, chaque déclencheur doit avoir une couverture.
2.2 Vérifier la couverture par classe
Section intitulée « 2.2 Vérifier la couverture par classe »sf apex run test \ --code-coverage \ --result-format json \ --wait 10 \ --target-org FlexiFREE \ | jq '.result.coverage.coverage[] | select(.coveredPercent < 75) | {name, coveredPercent}'Phase 3 : Construire la version du package (beta)
Section intitulée « Phase 3 : Construire la version du package (beta) »3.1 Incrémenter la version dans sfdx-project.json
Section intitulée « 3.1 Incrémenter la version dans sfdx-project.json »"versionName": "ver 1.2.0","versionNumber": "1.2.0.NEXT"3.2 Créer une version du package beta
Section intitulée « 3.2 Créer une version du package beta »sf package version create \ --package FlexibleTeamShare \ --definition-file config/package-scratch-def.json \ --installation-key-bypass \ --wait 30 \ --code-coverage \ --skip-ancestor-check3.3 Vérifier et vérifier la couverture
Section intitulée « 3.3 Vérifier et vérifier la couverture »sf package version list --packages FlexibleTeamShare --order-by CreatedDate --verbosesf package version report --package 04tXXXXXXXXXXXXXXX --verbosePhase 4 : Tester l’installation
Section intitulée « Phase 4 : Tester l’installation »4.1 Installer dans une organisation scratch/sandbox propre
Section intitulée « 4.1 Installer dans une organisation scratch/sandbox propre »sf package install \ --package 04tXXXXXXXXXXXXXXX \ --target-org TestOrg \ --wait 104.2 Test de fumée
Section intitulée « 4.2 Test de fumée »- Attribuez les ensembles de permissions
FTS_App_AccessetFTS_Data_Access - Configurez une configuration de partage via l’assistant
- Ajoutez/modifiez/supprimez des membres d’équipe sur un enregistrement
- Vérifiez que les enregistrements de partage sont créés/supprimés
- Testez en tant qu’utilisateur non-administrateur (FTS_Data_Access uniquement)
Phase 5 : Promouvoir en version
Section intitulée « Phase 5 : Promouvoir en version »sf package version promote --package 04tXXXXXXXXXXXXXXXPhase 6 : Partner Security Portal — Source Scanner (Checkmarx)
Section intitulée « Phase 6 : Partner Security Portal — Source Scanner (Checkmarx) »Ceci est obligatoire pour toute soumission qui inclut un package Salesforce.
- Allez sur Partner Security Portal en utilisant vos identifiants DevHub/packaging org
- Sélectionnez votre version du package promue (publiée)
- Cliquez sur Start Scan et attendez les résultats (généralement 15-30 min)
- Téléchargez le rapport
Gérer les résultats
Section intitulée « Gérer les résultats »- Critical/High — corrigez le code, reconstruisez, rescannez
- Faux positifs — documentez dans
docs/FALSE-POSITIVES.md, joignez à la soumission - Low/Info — documentez la justification, aucune correction requise
Phase 7 : Scan DAST (si applicable)
Section intitulée « Phase 7 : Scan DAST (si applicable) »Flexible Team Share n’a aucun callout externe, aucune interface web, aucun endpoint API — DAST est non applicable.
Phase 8 : Préparer les matériaux de soumission
Section intitulée « Phase 8 : Préparer les matériaux de soumission »Documents requis
Section intitulée « Documents requis »| Matériel | Fichier | Notes |
|---|---|---|
| Rapport Code Analyzer (complet) | docs/scan-results.html | De la Phase 1 |
| Rapport Code Analyzer (AppExchange) | docs/scan-appexchange.html | De la Phase 1 |
| Rapport Source Scanner | Téléchargé depuis le Portail | De la Phase 6 |
| Document faux positifs | docs/FALSE-POSITIVES.md | Expliquer chaque résultat |
| Documentation Admin/Utilisateur | docs/APPLICATION-OVERVIEW.md, docs/USE-CASES.md | Les réviseurs testent votre application |
| Guide d’installation | docs/1. Installation Guide.md | Configuration étape par étape |
Préparation de l’organisation d’examen
Section intitulée « Préparation de l’organisation d’examen »- Installez la version du package promue
- Désactivez MFA/2FA pour que l’équipe d’examen puisse se connecter
- Installez uniquement les packages liés à cet examen
- Créez un utilisateur de test avec accès complet pour l’équipe d’examen
- Préconfigurez au moins une configuration de partage fonctionnelle avec des données d’exemple
Phase 9 : Soumettre
Section intitulée « Phase 9 : Soumettre »- Allez sur AppExchange Partner Console > Publishing > Security Review
- Sélectionnez votre package et version promue
- Téléchargez tous les rapports de scan
- Fournissez les identifiants de connexion à l’organisation pour l’équipe d’examen
- Payez les frais de 999 $ (pour les applications payantes ; applications gratuites — pas de frais)
- Soumettez
Délai : 4-6 semaines. La plupart des applications passent à la 2ème tentative.
Résumé de l’ordre d’exécution
Section intitulée « Résumé de l’ordre d’exécution »Phase 1 Code Analyzer + ESLint + Jest ← corriger les problèmes de codePhase 2 Tests Apex dans l'organisation (>= 75%) ← corriger les lacunes de couverturePhase 3 Construire la version du package beta ← si la construction échoue, retour à la Phase 2Phase 4 Installer et test de fumée dans une organisation propre ← si cassé, corriger et reconstruirePhase 5 Promouvoir en version ← IRRÉVERSIBLEPhase 6 Source Scanner (Checkmarx) ← uniquement sur la version promuePhase 7 Scan DAST (si applicable) ← N/A pour cette applicationPhase 8 Préparer les documents et l'organisation d'examen ← tout empaqueterPhase 9 Soumettre à AppExchange ← attendre 4-6 semaines