בנייה על 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 והאפליקציות.
- תרומה: בעיות, בקשות משיכה, סגנון, תרגומים, אבטחה והיתרים.
שאלות מוזמנות בהדיונים הקהילתיים. דווחו על באגים בבעיות הקהילה.