البناء على Antimatter

هذا الدليل مخصص للمطورين. يتناول السكربتات والبوتات التي تستخدم واجهة برمجة التطبيقات، والتكاملات المبنية على خطوط الويب وأوامر الشرطة المائلة، والتطبيقات (الإضافات) التي تضيف ميزات إلى الخادم وتطبيق الويب، فضلاً عن بناء Antimatter من الشيفرة المصدرية للمساهمة في تطويره.

طرق توسيع إمكانيات Antimatter

اختر الأداة الأخفّ التي تنجز المهمة. الأدوات الأربع الأولى لا تتطلب أي وصول إلى الخادم نفسه، بينما تعمل التطبيقات داخله.

الأداةوظيفتهمناسبة لـ
واجهة برمجة التطبيقات RESTكل ما تنجزه التطبيقات: الرسائل، القنوات، الأشخاص، الملفات، الإعدادات. يرسل WebSocket الأحداث فور حدوثها.السكربتات، المزامنة مع أنظمة أخرى، العملاء المخصصون.
خطوات الويب الواردةرابط سري يرسل رسالة إلى قناة عند إرسال بيانات JSON إليه.التنبيهات، نتائج أنظمة البناء والتكامل المستمر، المراقبة، الإشعارات من أدوات أخرى.
خطوات الويب الصادرةتقوم Antimatter باستدعاء رابط URL الخاص بك عندما تبدأ رسالة في قناة عامة بكلمة محفّزة، أو عندما يختار أحد أعضاء الفريق إجراءً من إجراءاتك في قائمة الرسالة، ثم تنشر ردّك.أتمتة بسيطة مبنية على المحادثة، ترسل رسالة إلى أداة أخرى.
أوامر الشرطة المائلةيكتب المستخدمون /something؛ يستدعي Antimatter رابطك ويعرض إجابتهم لهم أو للقناة.الاستعلامات، الإجراءات التي تبدأ من المحادثة.
البوتاتحسابات مُنشأة للبرامج، تمتلك رموزًا خاصة بها، وتُوسم بعلامة BOT (أو AGENT لوكلاء الذكاء الاصطناعي)، وتدعم الرسائل التفاعلية والنوافذ المنبثقة.المساعدون، وأدوات الإشعارات، ووكلاء الذكاء الاصطناعي الذين تديرهم بنفسك، وأي شيء يتواصل مع المستخدمين.
التطبيقات (الإضافات)كود يعمل داخل الخادم (Go) وفي تطبيق الويب (React): خطافات لكل رسالة، قوائم جديدة، لوحات، أنواع رسائل، صفحات.ميزات: استطلاعات، ملاحظات، تقويمات، تكاملات تتطلب واجهة المستخدم.

في واجهة المستخدم، يسمي المستخدمون الإضافات «تطبيقات». يستخدم هذا الدليل عبارة «تطبيقات (إضافات)» حيثما تساعد الكلمتان معاً، لأن الكود وواجهة برمجة التطبيقات والإعدادات لا تزال تستخدم كلمة «إضافة».

التوافق مع Mattermost

Antimatter هو فرع (fork) من Mattermost. معظم ما يعمل مع خادم Mattermost يعمل مع Antimatter.

ما هو متطابق

  • واجهة برمجة التطبيقات REST تحت /api/v4، ومصادقتها، وWebSocket، وصيغة أخطائها. يبلغ الخادم عن إصداره 12.0.0، لذا ترى العملاء والتطبيقات التي تفحص إصدار الخادم إصداراً حديثاً من Mattermost.
  • خطافات الويب وأوامر الشرطة المائلة، بما في ذلك حمولاتها المتوافقة مع Slack.
  • واجهة برمجة التطبيقات (API) الخاصة بالملحقات الخادمية والخطافات (Hooks): تحتفظ Antimatter بها كما هي. يُبنى كود الخادم على وحدة Go نفسها، github.com/mattermost/mattermost/server/public. تضيف Antimatter فقط بعض الطرق (methods) لخدمة الذكاء الاصطناعي الخاصة بها (انظر خدمة الذكاء الاصطناعي).
  • سجل إضافات تطبيق الويب: جميع طرق register… في سجل Mattermost موجودة في كلا واجهتي Antimatter للويب.
  • مكتبات العملاء: عميل Go model.Client4 وعميل TypeScript @mattermost/client (راجع مكتبات العملاء).
  • حزم الإضافات: ملف .tar.gz يحتوي على بيان plugin.json. تُثبَّت الإضافات الموقّعة بمفتاح Mattermost، وكذلك تلك الموقّعة بمفتاح Antimatter.

ما الذي يختلف

  • واجهتا ويب. الواجهة الجديدة، Fusion، هي الافتراضية؛ ما زالت الواجهة الكلاسيكية لـ Mattermost متاحة. تُصيِّر Fusion معظم مكوّنات الإضافات، لكنها تضع بعضها في أماكن مختلفة وتُغفل بعضها الآخر. يمكن للتطبيق معرفة الواجهة قيد التشغيل. راجع دعم واجهة Fusion.
  • واجهة برمجة تطبيقات إضافية. تضيف Antimatter نقاط نهاية (endpoints) لميزات خاصة بها: سمات المجتمع، فترات انتهاء الصلاحية، الرسائل العلوية، طلبات الرسائل، تجاوزات القنوات والتصنيفات، تصدير القنوات، نقل سلاسل الرسائل، اتصالات النماذج، إجراءات الرسائل، وحقول جديدة للمجتمعات. انظر ما تضيفه Antimatter إلى واجهة برمجة التطبيقات.
  • ميزات رسائل إضافية. يمكن لمرفقات الرسائل عرض مراحل خط الإنتاج ومخططًا صغيرًا؛ ويمكن أن تكون المنشورات ردودًا مضمّنة أو إخفاءات (spoilers).
  • خطافات (Hooks) إضافية لتطبيق الويب للمطوّرين: عنصر في قائمة "+" في محرر الرسائل، تبويبات في منتقي الرموز التعبيرية، لوحة في عرض القناة، تذييل أسفل القنوات في الشريط الجانبي، إدراج في صفحات التكاملات، وعرضا الإضافة والإدارة في منتقي الرموز التعبيرية، ولوحة جانبية تُعاد فتحها في نافذة جديدة في نفس الموقع الذي كانت فيه. انظر الخطافات التي تمتلكها Antimatter فقط.
  • لا تراخيص. جميع الميزات متاحة دون مفتاح ترخيص. نقاط نهاية الترخيص، التجربة، والترقية إلى الإصدار المؤسسي لم تعد موجودة؛ يبقى GET /api/v4/license/client للعملاء الذين يطلبونه. بعض التطبيقات المبنية لإصدارات Mattermost المدفوعة تتحقق من الترخيص بنفسها وترفض التشغيل.
  • الأسماء. تُسمّى الفرق مجتمعات في الواجهة، لكن واجهة برمجة التطبيقات والكود ما زالا يستخدمان team. متغيرات البيئة تستخدم بادئة AM_، وأداة سطر الأوامر هي amctl وملف الخادم هو antimatter.

أين يوجد الكود

كل شيء متاح كمصدر مفتوح في منظمة AntimatterChat على GitHub. كل مستودع يعمل على فرع main الخاص به.

المستودعمحتواها
antimatterالخادم (مكتوب بلغة Go، في server/)، وكلا الواجهتين الويب (webapp/fusion وwebapp/channels)، وعميل TypeScript والأداة amctl.
antimatter-dockerصور Docker، مع التطبيقات المدمجة، وملفات compose.
antimatter-plugin-*مستودع واحد لكل تطبيق مدمج: polls، todo، notes، whiteboard، calendar، mail، gifs، memes، voice-channels، calls، boards (Kanban)، playbooks، agents وmetrics.
gifs-serverخدمة GIF والملصقات ذاتية الاستضافة التي يستخدمها تطبيق GIF.
desktop-app، mobile-app، push-proxyتطبيقات سطح المكتب والجوال، والخدمة التي تعيد توجيه الإشعارات الفورية إلى الهواتف.
antimatter.chatهذا الموقع وتوثيقه.
communityالمشكلات والمناقشات لكل جزء من Antimatter.

قبل أن تبدأ

  • احصل على خادم تجريبي. الأسرع هو صورة Docker: راجع تثبيت Antimatter. للعمل على Antimatter نفسه، راجع البناء من الشيفرة المصدرية.
  • تحقق مما يسمح به الخادم. بعض ميزات التكامل معطلة افتراضيًا وتتطلب مدير نظام: رموز الوصول الشخصية، حسابات البوتات، تجاوزات اسم المستخدم والأيقونة، ورفع التطبيقات. كل صفحة توضح الإعداد المطلوب.
  • اعرف عنوان موقعك. تستخدم الأمثلة https://chat.example.com. استبدله بعنوان خادمك.

في هذا الدليل

  • واجهة REST API: المصادقة، الموارد الرئيسية، ترقيم الصفحات، الأخطاء، حدود المعدل، WebSocket، مكتبات العملاء، وإضافات Antimatter.
  • خطافات الويب: خطافات الويب الواردة والصادرة، الأحمال، المرفقات والبطاقات.
  • أوامر الشرطة المائلة: أوامر مخصصة، طلباتها واستجاباتها، واكتمال الكتابة التلقائي.
  • البوتات والرسائل التفاعلية: حسابات البوتات، والوكلاء الخارجيون، والأزرار، والقوائم، والنوافذ المنبثقة.
  • كتابة التطبيقات: بنية الإضافة، خطافات الخادم، سجل تطبيق الويب، Fusion، الإعدادات، التخزين، الترجمات والتغليف.
  • البناء من الشيفرة المصدرية: الخادم، واجهات الويب، صورة Docker، والتطبيقات.
  • المساهمة: المشكلات، طلبات الدمج، الأسلوب، الترجمات، الأمان والتراخيص.
نرحب بأسئلتكم في مناقشات المجتمع. أبلغوا عن الأخطاء في مشكلات المجتمع.