Aller au contenu

Publication sur AppExchange

Exécutez ces vérifications avant de toucher l’organisation. Corrigez tout ce qui apparaît.

Fenêtre de terminal
# 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 à AppExchange
sf code-analyzer run \
--rule-selector AppExchange \
--workspace force-app \
--output-file docs/scan-appexchange.html
# Exécuter uniquement les règles étiquetées Security
sf 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.html

Tolérance zéro sur : Critical (1) et High (2). Medium (3) et en dessous — documenter comme faux positifs dans docs/FALSE-POSITIVES.md.

Fenêtre de terminal
npm run lint
Fenêtre de terminal
npm run test:unit
Fenêtre de terminal
sf apex run test \
--code-coverage \
--result-format human \
--wait 10 \
--target-org FlexiFREE

Requis : >= 75% de couverture globale, chaque déclencheur doit avoir une couverture.

Fenêtre de terminal
sf apex run test \
--code-coverage \
--result-format json \
--wait 10 \
--target-org FlexiFREE \
| jq '.result.coverage.coverage[]
| select(.coveredPercent < 75)
| {name, coveredPercent}'

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"
Fenêtre de terminal
sf package version create \
--package FlexibleTeamShare \
--definition-file config/package-scratch-def.json \
--installation-key-bypass \
--wait 30 \
--code-coverage \
--skip-ancestor-check
Fenêtre de terminal
sf package version list --packages FlexibleTeamShare --order-by CreatedDate --verbose
sf package version report --package 04tXXXXXXXXXXXXXXX --verbose

4.1 Installer dans une organisation scratch/sandbox propre

Section intitulée « 4.1 Installer dans une organisation scratch/sandbox propre »
Fenêtre de terminal
sf package install \
--package 04tXXXXXXXXXXXXXXX \
--target-org TestOrg \
--wait 10
  • Attribuez les ensembles de permissions FTS_App_Access et FTS_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)
Fenêtre de terminal
sf package version promote --package 04tXXXXXXXXXXXXXXX

Phase 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.

  1. Allez sur Partner Security Portal en utilisant vos identifiants DevHub/packaging org
  2. Sélectionnez votre version du package promue (publiée)
  3. Cliquez sur Start Scan et attendez les résultats (généralement 15-30 min)
  4. Téléchargez le rapport
  • 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

Flexible Team Share n’a aucun callout externe, aucune interface web, aucun endpoint API — DAST est non applicable.

MatérielFichierNotes
Rapport Code Analyzer (complet)docs/scan-results.htmlDe la Phase 1
Rapport Code Analyzer (AppExchange)docs/scan-appexchange.htmlDe la Phase 1
Rapport Source ScannerTéléchargé depuis le PortailDe la Phase 6
Document faux positifsdocs/FALSE-POSITIVES.mdExpliquer chaque résultat
Documentation Admin/Utilisateurdocs/APPLICATION-OVERVIEW.md, docs/USE-CASES.mdLes réviseurs testent votre application
Guide d’installationdocs/1. Installation Guide.mdConfiguration étape par étape
  • 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
  1. Allez sur AppExchange Partner Console > Publishing > Security Review
  2. Sélectionnez votre package et version promue
  3. Téléchargez tous les rapports de scan
  4. Fournissez les identifiants de connexion à l’organisation pour l’équipe d’examen
  5. Payez les frais de 999 $ (pour les applications payantes ; applications gratuites — pas de frais)
  6. Soumettez

Délai : 4-6 semaines. La plupart des applications passent à la 2ème tentative.

Phase 1 Code Analyzer + ESLint + Jest ← corriger les problèmes de code
Phase 2 Tests Apex dans l'organisation (>= 75%) ← corriger les lacunes de couverture
Phase 3 Construire la version du package beta ← si la construction échoue, retour à la Phase 2
Phase 4 Installer et test de fumée dans une organisation propre ← si cassé, corriger et reconstruire
Phase 5 Promouvoir en version ← IRRÉVERSIBLE
Phase 6 Source Scanner (Checkmarx) ← uniquement sur la version promue
Phase 7 Scan DAST (si applicable) ← N/A pour cette application
Phase 8 Préparer les documents et l'organisation d'examen ← tout empaqueter
Phase 9 Soumettre à AppExchange ← attendre 4-6 semaines