تخطَّ إلى المحتوى

إصدار AppExchange

المرحلة 1: ما قبل الطيران (محلي)

Section titled “المرحلة 1: ما قبل الطيران (محلي)”

قم بتشغيل هذه قبل لمس المؤسسة. أصلح كل ما يظهر.

1.1 Salesforce Code Analyzer v5 — مسح كامل

Section titled “1.1 Salesforce Code Analyzer v5 — مسح كامل”
Terminal window
# التثبيت (مرة واحدة)
sf plugins install @salesforce/plugin-code-analyzer
# تشغيل جميع القواعد (PMD، ESLint، RetireJS، Regex، Flow، CPD)
sf code-analyzer run \
--workspace force-app \
--output-file docs/scan-results.html
# تشغيل قواعد AppExchange المحددة
sf code-analyzer run \
--rule-selector AppExchange \
--workspace force-app \
--output-file docs/scan-appexchange.html
# تشغيل القواعد الموسومة بـ Security فقط
sf code-analyzer run \
--rule-selector Security \
--workspace force-app \
--output-file docs/scan-security.html
# حد الشدة — فشل على High أو Critical (CI/CD)
sf code-analyzer run \
--rule-selector AppExchange \
--workspace force-app \
--severity-threshold 2 \
--output-file docs/scan-appexchange.html

عدم التسامح على: Critical (1) و High (2). Medium (3) وأقل — وثّق كإيجابيات كاذبة في docs/FALSE-POSITIVES.md.

Terminal window
npm run lint
Terminal window
npm run test:unit

المرحلة 2: اختبارات المؤسسة والتغطية

Section titled “المرحلة 2: اختبارات المؤسسة والتغطية”

2.1 تشغيل جميع اختبارات Apex

Section titled “2.1 تشغيل جميع اختبارات Apex”
Terminal window
sf apex run test \
--code-coverage \
--result-format human \
--wait 10 \
--target-org FlexiFREE

مطلوب: >= 75% تغطية إجمالية، يجب أن يكون لكل trigger تغطية.

2.2 التحقق من تغطية كل فئة

Section titled “2.2 التحقق من تغطية كل فئة”
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}'

المرحلة 3: بناء إصدار الحزمة (beta)

Section titled “المرحلة 3: بناء إصدار الحزمة (beta)”

3.1 زيادة الإصدار في sfdx-project.json

Section titled “3.1 زيادة الإصدار في sfdx-project.json”
"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

المرحلة 4: اختبار التثبيت

Section titled “المرحلة 4: اختبار التثبيت”

4.1 التثبيت في مؤسسة scratch/sandbox نظيفة

Section titled “4.1 التثبيت في مؤسسة scratch/sandbox نظيفة”
Terminal window
sf package install \
--package 04tXXXXXXXXXXXXXXX \
--target-org TestOrg \
--wait 10
  • تعيين Permission Sets FTS_App_Access و FTS_Data_Access
  • تكوين تكوين مشاركة عبر المعالج
  • إضافة/تحرير/إزالة أعضاء الفريق على سجل
  • التحقق من إنشاء/حذف سجلات المشاركة
  • الاختبار كمستخدم غير مسؤول (FTS_Data_Access فقط)

المرحلة 5: الترويج للإصدار

Section titled “المرحلة 5: الترويج للإصدار”
Terminal window
sf package version promote --package 04tXXXXXXXXXXXXXXX

المرحلة 6: Partner Security Portal — Source Scanner (Checkmarx)

Section titled “المرحلة 6: Partner Security Portal — Source Scanner (Checkmarx)”

هذا إلزامي لأي تقديم يتضمن حزمة Salesforce.

  1. انتقل إلى Partner Security Portal باستخدام بيانات اعتماد DevHub/packaging org
  2. حدد إصدار الحزمة المروّج (released) الخاص بك
  3. انقر على Start Scan وانتظر النتائج (عادةً 15-30 دقيقة)
  4. قم بتنزيل التقرير
  • Critical/High — أصلح الكود، أعد البناء، أعد المسح
  • إيجابيات كاذبة — وثّق في docs/FALSE-POSITIVES.md، أرفق بالتقديم
  • Low/Info — وثّق المبرر، لا حاجة للإصلاح

المرحلة 7: مسح DAST (إن وجد)

Section titled “المرحلة 7: مسح DAST (إن وجد)”

ليس لدى Flexible Team Share استدعاءات خارجية، لا واجهة مستخدم ويب، لا نقاط نهاية API — DAST غير قابل للتطبيق.

المرحلة 8: تحضير مواد التقديم

Section titled “المرحلة 8: تحضير مواد التقديم”
المادةالملفملاحظات
تقرير Code Analyzer (كامل)docs/scan-results.htmlمن المرحلة 1
تقرير Code Analyzer (AppExchange)docs/scan-appexchange.htmlمن المرحلة 1
تقرير Source Scannerتم التنزيل من البوابةمن المرحلة 6
وثيقة الإيجابيات الكاذبةdocs/FALSE-POSITIVES.mdاشرح كل نتيجة
وثائق المسؤول/المستخدمdocs/APPLICATION-OVERVIEW.md، docs/USE-CASES.mdالمراجعون يختبرون تطبيقك
دليل التثبيتdocs/1. Installation Guide.mdخطوة بخطوة للإعداد
  • ثبّت إصدار الحزمة المروّج
  • عطّل MFA/2FA حتى يتمكن فريق المراجعة من تسجيل الدخول
  • ثبّت فقط الحزم المتعلقة بهذه المراجعة
  • أنشئ مستخدم اختبار مع وصول كامل لفريق المراجعة
  • كوّن مسبقًا تكوين مشاركة واحد على الأقل يعمل مع بيانات نموذجية
  1. انتقل إلى AppExchange Partner Console > Publishing > Security Review
  2. حدد حزمتك والإصدار المروّج
  3. ارفع جميع تقارير المسح
  4. قدّم بيانات اعتماد تسجيل الدخول للمؤسسة لفريق المراجعة
  5. ادفع رسوم $999 (للتطبيقات المدفوعة؛ التطبيقات المجانية — بدون رسوم)
  6. قدّم

الجدول الزمني: 4-6 أسابيع. معظم التطبيقات تنجح في المحاولة الثانية.

المرحلة 1 Code Analyzer + ESLint + Jest ← إصلاح مشاكل الكود
المرحلة 2 اختبارات Apex في المؤسسة (>= 75%) ← إصلاح فجوات التغطية
المرحلة 3 بناء إصدار حزمة beta ← إذا فشل البناء، ارجع للمرحلة 2
المرحلة 4 التثبيت والاختبار السريع في مؤسسة نظيفة ← إذا كان معطلاً، أصلح وأعد البناء
المرحلة 5 الترويج للإصدار ← لا يمكن الرجوع عنه
المرحلة 6 Source Scanner (Checkmarx) ← فقط على الإصدار المروّج
المرحلة 7 مسح DAST (إن وجد) ← غير قابل للتطبيق لهذا التطبيق
المرحلة 8 تحضير الوثائق ومؤسسة المراجعة ← تغليف كل شيء
المرحلة 9 التقديم إلى AppExchange ← انتظر 4-6 أسابيع