نظرة عامة
بمجرد أن يكون تطبيقك مبنيًا ومختبرًا محليًا، لديك مساران لتوزيعه:- نشر أرشيف tar — ارفع تطبيقك مباشرةً إلى خادم Twenty محدد للاستخدام الداخلي أو الخاص.
- النشر على npm — أدرج تطبيقك في سوق Twenty ليتسنى لأي مساحة عمل اكتشافه وتثبيته.
بناء تطبيقك
شغّل أمر build لتجميع تطبيقك وإنشاء ملفmanifest.json جاهز للتوزيع:
.twenty/output/. أضِف --tarball لإنتاج حزمة .tgz أيضًا للتوزيع اليدوي أو لأمر deploy.
النشر إلى خادم (tarball)
بالنسبة للتطبيقات التي لا تريد إتاحتها للعامة — مثل الأدوات المملوكة، أو عمليات التكامل الخاصة بالمؤسسات فقط، أو الإصدارات التجريبية — يمكنك نشر tarball مباشرةً إلى خادم Twenty.المتطلبات الأساسية
قبل النشر، تحتاج إلى remote مُعدّ يشير إلى خادم الهدف. تُخزّن remotes عنوان URL للخادم وبيانات اعتماد المصادقة محليًا في~/.twenty/config.json.
أضِف remote:
النشر
بناء تطبيقك ورفعه إلى الخادم في خطوة واحدة:مشاركة تطبيق منشور
تطبيقات tarball لا تُدرَج في السوق العامة، لذا لن تكتشفها مساحات العمل الأخرى على الخادم نفسه عبر الاستعراض. بمجرد أن تصبح مساحة العمل لديك ضمن خطة Enterprise، يمكنك مشاركة تطبيق تم نشره كما يلي:- اذهب إلى الإعدادات > التطبيقات > التسجيلات وافتح تطبيقك
- في علامة التبويب التوزيع، انقر نسخ رابط المشاركة
- شارك هذا الرابط مع المستخدمين في مساحات عمل أخرى — سيأخذهم مباشرةً إلى صفحة تثبيت التطبيق
إدارة الإصدارات
عند تحديث تطبيق tarball منشور مسبقًا، يشترط الخادم أن تكون قيمةversion في package.json أعلى قطعًا (وفق ترتيب الإصدار الدلالي) من الإصدار المنشور حاليًا. إعادة نشر الإصدار نفسه، أو دفع إصدار أدنى، يُرفَض قبل تخزين ملف tarball — سترى خطأ VERSION_ALREADY_EXISTS من CLI.
لطرح تحديث:
- قم بزيادة الحقل
versionفي ملفpackage.json(مثلًا:1.2.3→1.2.4،1.3.0، أو2.0.0) - شغّل
yarn twenty deploy(أوyarn twenty deploy --remote production) - سترى مساحات العمل التي ثبّتت التطبيق الترقية متاحة في إعداداتها
علامات ما قبل الإصدار تعمل كما هو متوقع: زيادة
1.0.0-rc.1 → 1.0.0-rc.2 مسموح بها، ويُعترَف بالإصدار النهائي مثل 1.0.0 على أنه أعلى من 1.0.0-rc.5. يجب أن يكون الإصدار في package.json بنفسه سلسلة semver صالحة.النشر على npm
يُتيح النشر على npm إمكانية العثور على تطبيقك في سوق Twenty. يمكن لأي مساحة عمل في Twenty استعراض تطبيقات السوق وتثبيتها وترقيتها مباشرةً من واجهة المستخدم.المتطلبات
- حساب على npm
- الكلمة المفتاحية
twenty-appفي مصفوفةkeywordsفيpackage.json(أضفها يدويًا — فهي غير مضمنة افتراضيًا في قالبcreate-twenty-app)
بيانات التعريف لسوق التطبيقات
يدعم إعدادdefineApplication() حقولًا اختيارية تتحكم في كيفية ظهور تطبيقك في السوق. استخدم logoUrl وscreenshots للإشارة إلى الصور من مجلد public/:
src/application-config.ts
author وcategory وaboutDescription وwebsiteUrl وtermsUrl وغيرها).
النشر
beta أو next):
كيف تعمل آلية الاكتشاف في السوق
يقوم خادم Twenty بمزامنة كتالوج السوق من سجل npm كل ساعة. يمكنك تشغيل المزامنة فورًا بدلًا من الانتظار:defineApplication() — حقول مثل displayName وdescription وauthor وcategory وlogoUrl وscreenshots وaboutDescription وwebsiteUrl وtermsUrl.
إذا لم يحدد تطبيقك
aboutDescription في defineApplication()، فسيستخدم السوق تلقائيًا ملف README.md الخاص بحزمتك من npm كمحتوى لصفحة حول. هذا يعني أنه يمكنك الاحتفاظ بملف README واحد لكل من npm وسوق Twenty. إذا كنت تريد وصفًا مختلفًا في السوق، فقم بتعيين aboutDescription بشكل صريح.النشر عبر CI
استخدم سير عمل GitHub Actions هذا للنشر تلقائيًا مع كل إصدار (يستخدم OIDC):yarn install، ثم yarn twenty build، ثم npm publish من .twenty/output.
npm provenance اختياري ولكنه موصى به. يضيف النشر باستخدام
--provenance شارة ثقة إلى إدراجك على npm، مما يتيح للمستخدمين التحقق من أن الحزمة تم بناؤها من التزام محدد ضمن خط أنابيب CI عام. راجع وثائق npm provenance للحصول على تعليمات الإعداد.تثبيت التطبيقات
بعد نشر التطبيق (npm) أو نشره (tarball)، يمكن لمساحات العمل تثبيته عبر واجهة المستخدم. اذهب إلى صفحة الإعدادات > التطبيقات في Twenty، حيث يمكن استعراض تطبيقات السوق والتطبيقات المنشورة عبر tarball وتثبيتها. يمكنك أيضًا تثبيت التطبيقات من سطر الأوامر:يفرض الخادم اعتماد إصدارات semver عند التثبيت، بما يعكس القواعد المطبّقة عند النشر:
- تثبيت الإصدار نفسه المثبّت بالفعل في مساحة عملك يُرفَض بخطأ
APP_ALREADY_INSTALLED. - تثبيت إصدار أدنى من الإصدار المثبّت حاليًا يُرفَض بخطأ
CANNOT_DOWNGRADE_APPLICATION.
yarn twenty install.