בנייה על Antimatter

מדריך זה מיועד למפתחים. הוא מכסה סקריפטים ובוטים שמשתמשים ב-API, שילובים המבוססים על Webhooks ופקודות לוכסן, אפליקציות (תוספים) המוסיפות יכולות לשרת ולאפליקציית ה-Web, ובניית Antimatter מקוד המקור לצורך תרומה.

דרכים להרחבת Antimatter

בחרו בכלי הקל ביותר שמבצע את המשיבה. ארבעת הכלים הראשונים אינם דורשים גישה לשרת עצמו; אפליקציות רצות בתוכו.

כלימה היא עושהמתאים ל
REST APIכל מה שהאפליקציות עושות: הודעות, ערוצים, אנשים, קבצים, הגדרות. WebSocket שולח אירועים כשהם מתרחשים.סקריפטים, סנכרון עם מערכות אחרות, לקוחות מותאמים אישית.
Webhooks נכנסיםכתובת URL סודית ששולחת הודעה לערוץ כאשר משהו שולח אליה JSON.התראות, תוצאות CI, ניטור, התראות מכליים אחרים.
Webhooks יוצאיםAntimatter פונה לכתובת ה-URL שלך כאשר הודעה בערוץ ציבורי מתחילה במילה טריגר, או כאשר מישהו בוחר בפעולה שלך בתפריט ההודעה, ומפרסם את תשובתך.אוטומציות פשוטות המבוססות על צ'אט, המשלחות הודעה לכלי אחר.
פקודות לוכסןמשתמשים מקלידים /something; Antimatter קוראת לכתובת URL שלכם ומציגה את תשובתכם להם או לערוץ.חיפושים, פעולות המתחילות מהצ'אט.
בוטיםחשבונות שנועדו לתוכנות, עם טוקנים ייחודיים, תג בוט, והודעות ודיאלוגים אינטראקטיביים.עוזרים, מערכות התראה, כל דבר שמתקשר עם אנשים.
אפליקציות (תוספים)קוד שרץ בתוך השרת (Go) ובאפליקציית ה-Web (React): גיבויים (hooks) לכל הודעה, תפריטים חדשים, פאנלים, סוגי הודעות, עמודים.יכולות: סקרים, פתקים, לוחות שנה, שילובים הדורשים ממשק משתמש.

בממשק, משתמשים קוראים לתוספים "אפליקציות". מדריך זה משתמש בביטוי "אפליקציות (תוספים)" במקומות ששני המונחים עוזרים, מכיוון שהקוד, ה-API וההגדרות עדיין משתמשים במילה "plugin".

תאימות עם Mattermost

Antimatter הוא פורק (fork) של Mattermost. רוב מה שעובד עם שרת Mattermost עובד גם עם Antimatter.

מה זהה

  • REST API תחת /api/v4, אימותו, WebSocket שלו ופורמט השגיאות שלו. השרת מדווח גרסה 12.0.0, כך שלקוחות ואפליקציות המבדקות את גרסת השרת רואות Mattermost עדכני.
  • Webhooks ופקודות לוכסן, כולל תגובות התאימות ל-Slack.
  • ממשק ה-API וההוקים של השרת: Antimatter שומר עליהם כפי שהם. קוד השרת נבנה מול אותו מודול Go, github.com/mattermost/mattermost/server/public. Antimatter מוסיף רק שיטות, עבור שירות ה-AI שלו (ראו שירות ה-AI).
  • ממשק ה-Plugin registry של אפליקציית ה-Web: כל שיטת register… של Mattermost קיימת בשני ממשקי ה-Web של Antimatter.
  • ספריות לקוח: ספריית ה-Go model.Client4 וספריית TypeScript @mattermost/client (ראו ספריות לקוח).
  • חבילות Plugin: קובץ .tar.gz עם מניפסט plugin.json. Plugins חתומים עם מפתח Mattermost מותקנים, כמו גם אלה החתומים עם מפתח Antimatter.

מה שונה

  • שני ממשקי Web. הממשק החדש, Fusion, הוא ברירת המחדל; ממשק Mattermost הקלאסי עדיין זמין. Fusion מציג את רוב רכיבי ה-Plugin, אך מציב חלק מהם באופן שונה ומשאיר כמה בחוץ. אפליקציה יכולה לדעת איזה ממשק רץ. ראו תמיכה בממשק Fusion.
  • API נוסף. Antimatter מוסיף נקודות גישה (endpoints) לתכונות שלו: תכונות קהילה, תמונות, הודעות על גבי הודעות, בקשות להודעות, השגות לערוצים ולקטגוריות, ייצוא ערוצים, העברת שרשורים, חיבורי מודלים, פעולות הודעה, ושדות חדשים בקהילות. ראו מה Antimatter מוסיף ל-API.
  • תכונות הודעה נוספות. קבצים מצורפים בהודעה יכולים להציג שלבי pipeline וגרף קטן; פוסטים יכולים להיות תשובות מוטמעות או ספוילרים.
  • הוקים נוספים לאפליקציית ה-Web עבור אפליקציות: פריט בתפריט "+" במחבר ההודעות, לשוניות במבחר האמוג'י, פאנל בתצוגת הערוץ, כותרת תחתונה מתחת לערוצים בסרגל הצד, פריט בדפי האינטגרציות, תצוגות הוספה וניהול במבחר האמוג'י, ופאנל צד שנפתח מחדש במקום שבו נמצא בחלון חדש. ראו הוקים שיש רק ל-Antimatter.
  • אין רישיונות. כל תכונה זמינה ללא מפתח רישיון. endpoints של רישיון, ניסיון ושדרוג לעסקים נעלמו; GET /api/v4/license/client נשאר עבור לקוחות ששואלים. חלק מהאפליקציות שנבנו עבור המהדורות בתשלום של Mattermost בודקות רישיון בעצמן ומסרבות להימשך.
  • שמות. צוותים נקראים קהילות בממשק, אך ה-API והקוד עדיין קוראים להם team. משתני סביבה משתמשים בקידומת AM_, כלי שורת הפקודה הוא amctl וה-binary של השרת הוא antimatter.

איפה הקוד נמצא

כל הקוד פתוח, ומאורגן תחת הארגון AntimatterChat ב-GitHub. כל אחסון עובד על ענף main שלו.

אחסוןמה היא מכילה
antimatterהשרת (ב-Go, תחת server/), שני ממשקי ה-Web (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אפליקציות ה-Desktop וה-Mobile, והשירות שמעביר התראות דחיפה (push) לטלפונים.
antimatter.chatאתר זה והתיעוד שלו.
communityבעיות ודיונים לכל חלק של Antimatter.

לפני שמתחילים

  • השגו שרת ניסוי. הדרך המהירה ביותר היא דרך תמונת Docker: ראו התקנת Antimatter. כדי לעבוד על Antimatter עצמו, ראו בנייה מקוד המקור.
  • בדקו מה השרת מאפשר. מספר תכונות אינטגרציה כבויות כברירת מחדל ודורשות מנהל מערכת: אישורי גישה אישיים, חשבונות בוט, החלפת שם משתמש ואייקון, והעלאת אפליקציות. כל עמוד מציינה איזו הגדרה נדרשת.
  • ידעו את כתובת האתר. הדוגמאות משתמשות ב-https://chat.example.com. החליפו זאת בכתובת השרת שלכם.

במדריך זה

  • ממשק REST: אימות, משאבים עיקריים, עימוד, שגיאות, הגבלות קצב, WebSocket, ספריות לקוחות והתוספות של Antimatter.
  • Webhooks: Webhooks נכנסים ויוצאים, מטענים, קבצים מצורפים וכרטיסים.
  • פקודות לוכסן: פקודות מותאמות אישית, בקשות ותגובות שלהן, והשלמה אוטומטית.
  • בוטים והודעות אינטראקטיביות: חשבונות בוט, כפתורים, תפריטים ודיאלוגים.
  • כתיבת אפליקציות: מבנה התוסף, הוקים לשרת, רישום אפליקציות ווב, Fusion, הגדרות, אחסון, תרגומים ואריזה.
  • בנייה מקוד המקור: השרת, ממשקי הווב, תמונת Docker והאפליקציות.
  • תרומה: בעיות, בקשות משיכה, סגנון, תרגומים, אבטחה והיתרים.
שאלות מוזמנות בהדיונים הקהילתיים. דווחו על באגים בבעיות הקהילה.