كيف تعمل التطبيقات
التطبيق عبارة عن مجموعة من الكيانات يتم إعلانها باستخدام دوالdefineEntity() من حزمة twenty-sdk. يكتشف SDK هذه التصريحات عبر تحليل AST وقت البناء وينتج ملف بيان — وصفًا كاملًا لما يضيفه تطبيقك إلى مساحة العمل. تتحقق هذه الدوال من تكوينك وقت البناء وتوفّر إكمالًا تلقائيًا في بيئة التطوير وأمان الأنواع.
تنظيم الملفات متروك لك. يعتمد اكتشاف الكيانات على AST — يعثر SDK على استدعاءات
export default defineEntity(...) بغض النظر عن مكان وجود الملف. بنية المجلدات أعلاه هي اصطلاح وليست متطلبًا.أنواع الكيانات
العزل
- الدوال المنطقية تعمل في عمليات Node.js معزولة على الخادم. لا تصل إلى البيانات إلا عبر عميل API مضبوط الأنواع، ومقيَّد بأذونات دور التطبيق.
- المكوّنات الأمامية تعمل ضمن Web Workers باستخدام Remote DOM — معزولة عن الصفحة الرئيسية لكنها تعرض عناصر DOM الأصلية (وليس iframes). تتواصل مع Twenty عبر واجهة API للمضيف تعتمد تمرير الرسائل.
- الأذونات تُطبَّق على مستوى واجهة API. يُشتق رمز وقت التشغيل (
TWENTY_APP_ACCESS_TOKEN) من الدور المعرَّف فيdefineApplication().
دورة حياة التطبيق
yarn twenty dev— يراقب ملفات المصدر لديك ويزامن التغييرات مباشرةً إلى خادم Twenty متصل. يُعاد توليد عميل API مضبوط الأنواع تلقائيًا عند تغيّر المخطط.yarn twenty dev:build— يجمّع TypeScript، ويضمّن الدوال المنطقية والمكوّنات الأمامية باستخدام esbuild، وينتج ملف بيان.- خطّافات ما قبل/ما بعد التثبيت وإلغاء التثبيت — دوال اختيارية تعمل أثناء التثبيت أو مباشرة قبل الإزالة. راجع خطّافات التثبيت للتفاصيل.
الخطوات التالية
التهيئة
هوية التطبيق، الدور الافتراضي، وخطّافات التثبيت وإلغاء التثبيت.
بيانات
الكائنات، الحقول، والعلاقات ثنائية الاتجاه.
المنطق
دوال منطقية، مهارات، وكلاء، واتصالات OAuth.
التخطيط
العروض، التنقّل، تخطيطات الصفحات، ومكوّنات الواجهة الأمامية.
العمليات
سطر الأوامر (CLI)، الاختبار، المستودعات البعيدة (remotes)، التكامل المستمر (CI)، ونشر تطبيقك.