- عرِّف كائنات وحقولًا مخصصة على شكل كود (نموذج بيانات مُدار)
- أنشئ وظائف منطقية مع مشغلات مخصصة (مسارات HTTP، cron، أحداث قاعدة البيانات)
- حدد المهارات لوكلاء الذكاء الاصطناعي
- أنشئ مكونات واجهية تُعرَض داخل واجهة مستخدم Twenty
- انشر التطبيق نفسه عبر مساحات عمل متعددة
المتطلبات الأساسية
- Node.js 24+ وYarn 4
- مساحة عمل Twenty ومفتاح واجهة برمجة التطبيقات (أنشئ واحدًا على https://app.twenty.com/settings/api-webhooks)
البدء
أنشئ تطبيقًا جديدًا باستخدام المُهيئ الرسمي، ثم قم بالمصادقة وابدأ التطوير:هيكل المشروع (مُنشأ بالقالب)
عند تشغيلnpx create-twenty-app@latest my-twenty-app، يقوم المُهيئ بما يلي:
- ينسخ تطبيقًا أساسيًا مصغّرًا إلى
my-twenty-app/ - يضيف اعتمادًا محليًا
twenty-sdkوتهيئة Yarn 4 - ينشئ ملفات ضبط ونصوصًا مرتبطة بـ
twentyCLI - يُنشئ الملفات الأساسية (تهيئة التطبيق، دور الدالة الافتراضي، دالتا ما قبل التثبيت وما بعد التثبيت) بالإضافة إلى ملفات أمثلة استنادًا إلى وضع الإنشاء.
--exhaustive كما يلي:
--minimal، سيتم إنشاء الملفات الأساسية فقط (application-config.ts، roles/default-role.ts، logic-functions/pre-install.ts، وlogic-functions/post-install.ts).
بشكل عام:
- package.json: يصرّح باسم التطبيق والإصدار والمحرّكات (Node 24+، Yarn 4)، ويضيف
twenty-sdkبالإضافة إلى نص برمجيtwentyيفوِّض إلىtwentyCLI المحلي. شغِّلyarn twenty helpلعرض جميع الأوامر المتاحة. - .gitignore: يتجاهل العناصر الشائعة مثل
node_modulesو.yarnوgenerated/(عميل مضبوط الأنواع) وdist/وbuild/ومجلدات التغطية وملفات السجلات وملفات.env*. - yarn.lock، .yarnrc.yml، .yarn/: تقوم بقفل وتكوين حزمة أدوات Yarn 4 المستخدمة في المشروع.
- .nvmrc: يثبّت إصدار Node.js المتوقع للمشروع.
- .oxlintrc.json و tsconfig.json: يقدّمان إعدادات الفحص والتهيئة لـ TypeScript لمصادر TypeScript في تطبيقك.
- README.md: ملف README قصير في جذر التطبيق يتضمن تعليمات أساسية.
- public/: مجلد لتخزين الأصول العامة (صور، خطوط، ملفات ثابتة) التي سيتم تقديمها مع تطبيقك. الملفات الموضوعة هنا تُرفع أثناء المزامنة وتكون متاحة أثناء وقت التشغيل.
- src/: المكان الرئيسي حيث تعرّف تطبيقك ككود
اكتشاف الكيانات
يكتشف SDK الكيانات عبر تحليل ملفات TypeScript الخاصة بك بحثًا عن استدعاءاتexport default define<Entity>({...}). يحتوي كل نوع كيان على دالة مساعدة مقابلة يتم تصديرها من twenty-sdk:
| دالة مساعدة | نوع الكيان |
|---|---|
defineObject | تعريفات كائنات مخصصة |
defineLogicFunction | تعريفات الوظائف المنطقية |
definePreInstallLogicFunction | دالة منطقية لما قبل التثبيت (تعمل قبل التثبيت) |
definePostInstallLogicFunction | دالة منطقية لما بعد التثبيت (تعمل بعد التثبيت) |
defineFrontComponent | تعريفات المكونات الواجهية |
defineRole | تعريفات الأدوار |
defineField | امتدادات الحقول للكائنات الموجودة |
defineView | تعريفات العروض المحفوظة |
defineNavigationMenuItem | تعريفات عناصر قائمة التنقل |
defineSkill | تعريفات مهارات وكلاء الذكاء الاصطناعي |
تسمية الملفات مرنة. يعتمد اكتشاف الكيانات على بنية الشجرة المجردة (AST) — إذ يقوم SDK بفحص ملفات المصدر لديك بحثًا عن النمط
export default define<Entity>({...}). يمكنك تنظيم ملفاتك ومجلداتك كيفما تشاء. التجميع حسب نوع الكيان (مثلًا، logic-functions/ وroles/) هو مجرد عرف لتنظيم الشيفرة، وليس مطلبًا إلزاميًا.- سيقوم
yarn twenty app:devبتوليد عميلين API مضبوطي الأنواع تلقائيًا فيnode_modules/twenty-sdk/generated:CoreApiClient(لبيانات مساحة العمل عبر/graphql) وMetadataApiClient(لتكوين مساحة العمل وتحميل الملفات عبر/metadata). yarn twenty entity:addسيضيف ملفات تعريف الكيانات ضمنsrc/لكائناتك المخصّصة، والوظائف، ومكوّنات الواجهة الأمامية، والأدوار، والمهارات، وغير ذلك.
المصادقة
في المرة الأولى التي تشغّل فيهاyarn twenty auth:login، سيُطلب منك إدخال:
- عنوان URL لواجهة برمجة التطبيقات (الافتراضي http://localhost:3000 أو ملف تعريف مساحة العمل الحالية لديك)
- مفتاح واجهة برمجة التطبيقات
~/.twenty/config.json. يمكنك الاحتفاظ بملفات تعريف متعددة والتبديل بينها.
إدارة مساحات العمل
yarn twenty auth:switch، ستستخدم جميع الأوامر اللاحقة تلك المساحة افتراضيًا. لا يزال بإمكانك تجاوزه مؤقتًا باستخدام --workspace <name>.
إعداد يدوي (بدون المهيئ)
بينما نوصي باستخدامcreate-twenty-app للحصول على أفضل تجربة للبدء، يمكنك أيضًا إعداد مشروع يدويًا. لا تثبّت CLI عالميًا. بدل ذلك، أضف twenty-sdk كاعتماد محلي واربط سكربتًا واحدًا في ملف package.json لديك:
twenty:
yarn twenty <command>، مثلًا: yarn twenty app:dev، yarn twenty help، إلخ.
استكشاف الأخطاء وإصلاحها
- أخطاء المصادقة: شغّل
yarn twenty auth:loginوتأكد من أن مفتاح واجهة برمجة التطبيقات لديك يمتلك الأذونات المطلوبة. - يتعذّر الاتصال بالخادم: تحقق من عنوان URL لواجهة برمجة التطبيقات وأن خادم Twenty قابل للوصول.
- الأنواع أو العميل مفقود/قديم: أعد تشغيل
yarn twenty app:dev— فهو ينشئ العميل مضبوط الأنواع بشكل تلقائي. - وضع التطوير لا يزامن: تأكد من أن
yarn twenty app:devقيد التشغيل وأن التغييرات ليست متجاهلة من بيئتك.