Pular para o conteúdo

Release no AppExchange

Execute estes antes de tocar na org. Corrija tudo que aparecer.

Terminal window
# Install (once)
sf plugins install @salesforce/plugin-code-analyzer
# Run ALL rules (PMD, ESLint, RetireJS, Regex, Flow, CPD)
sf code-analyzer run \
--workspace force-app \
--output-file docs/scan-results.html
# Run AppExchange-specific rules
sf code-analyzer run \
--rule-selector AppExchange \
--workspace force-app \
--output-file docs/scan-appexchange.html
# Run only Security-tagged rules
sf code-analyzer run \
--rule-selector Security \
--workspace force-app \
--output-file docs/scan-security.html
# Severity threshold — fail on High or Critical (CI/CD)
sf code-analyzer run \
--rule-selector AppExchange \
--workspace force-app \
--severity-threshold 2 \
--output-file docs/scan-appexchange.html

Tolerância zero em: Critical (1) e High (2). Medium (3) e abaixo — documente como falsos positivos em docs/FALSE-POSITIVES.md.

Terminal window
npm run lint
Terminal window
npm run test:unit
Terminal window
sf apex run test \
--code-coverage \
--result-format human \
--wait 10 \
--target-org FlexiFREE

Necessário: >= 75% cobertura geral, cada trigger deve ter cobertura.

Terminal window
sf apex run test \
--code-coverage \
--result-format json \
--wait 10 \
--target-org FlexiFREE \
| jq '.result.coverage.coverage[]
| select(.coveredPercent < 75)
| {name, coveredPercent}'
"versionName": "ver 1.2.0",
"versionNumber": "1.2.0.NEXT"
Terminal window
sf package version create \
--package FlexibleTeamShare \
--definition-file config/package-scratch-def.json \
--installation-key-bypass \
--wait 30 \
--code-coverage \
--skip-ancestor-check
Terminal window
sf package version list --packages FlexibleTeamShare --order-by CreatedDate --verbose
sf package version report --package 04tXXXXXXXXXXXXXXX --verbose
Terminal window
sf package install \
--package 04tXXXXXXXXXXXXXXX \
--target-org TestOrg \
--wait 10
  • Atribuir permission sets FTS_App_Access e FTS_Data_Access
  • Configurar uma sharing config via Wizard
  • Adicionar/editar/remover membros da equipe em um registro
  • Verificar registros de compartilhamento criados/excluídos
  • Testar como usuário não-admin (somente FTS_Data_Access)
Terminal window
sf package version promote --package 04tXXXXXXXXXXXXXXX

Fase 6: Partner Security Portal — Source Scanner (Checkmarx)

Seção intitulada “Fase 6: Partner Security Portal — Source Scanner (Checkmarx)”

Isso é obrigatório para qualquer submissão que inclua um pacote Salesforce.

  1. Acesse Partner Security Portal usando suas credenciais da org DevHub/packaging
  2. Selecione sua versão do pacote promovida (released)
  3. Clique em Start Scan e aguarde resultados (geralmente 15-30 min)
  4. Baixe o relatório
  • Critical/High — corrija o código, reconstrua, rescaneie
  • Falsos positivos — documente em docs/FALSE-POSITIVES.md, anexe à submissão
  • Low/Info — documente justificativa, sem correção necessária

Flexible Team Share tem sem callouts externos, sem UI web, sem endpoints API — DAST é não aplicável.

MaterialArquivoNotas
Relatório Code Analyzer (completo)docs/scan-results.htmlDa Fase 1
Relatório Code Analyzer (AppExchange)docs/scan-appexchange.htmlDa Fase 1
Relatório Source ScannerBaixado do PortalDa Fase 6
Doc de falsos positivosdocs/FALSE-POSITIVES.mdExplique cada achado
Documentação Admin/Usuáriodocs/APPLICATION-OVERVIEW.md, docs/USE-CASES.mdRevisores testam seu app
Guia de instalaçãodocs/1. Installation Guide.mdSetup passo a passo
  • Instale a versão do pacote promovida
  • Desabilite MFA/2FA para que a equipe de revisão possa fazer login
  • Instale apenas pacotes relacionados a esta revisão
  • Crie um usuário de teste com acesso completo para a equipe de revisão
  • Pré-configure pelo menos uma sharing config funcional com dados de exemplo
  1. Acesse AppExchange Partner Console > Publishing > Security Review
  2. Selecione seu pacote e versão promovida
  3. Carregue todos os relatórios de scan
  4. Forneça credenciais de login da org para a equipe de revisão
  5. Pague taxa de $999 (para apps pagos; apps gratuitos — sem taxa)
  6. Envie

Cronograma: 4-6 semanas. A maioria dos apps passa na 2ª tentativa.

Fase 1 Code Analyzer + ESLint + Jest ← corrigir problemas de código
Fase 2 Testes Apex na org (>= 75%) ← corrigir lacunas de cobertura
Fase 3 Construir versão beta do pacote ← se build falhar, voltar à Fase 2
Fase 4 Instalar & smoke test em org limpa ← se quebrado, corrigir e reconstruir
Fase 5 Promover para release ← IRREVERSÍVEL
Fase 6 Source Scanner (Checkmarx) ← apenas em versão promovida
Fase 7 DAST scan (se aplicável) ← N/A para este app
Fase 8 Preparar docs & org de revisão ← empacotar tudo
Fase 9 Enviar para AppExchange ← aguardar 4-6 semanas