Fejlesztés az Antimatteren
Ez az útmutató fejlesztőknek szól. Leírja az API-t használó szkripteket és botokat, a webhooks és perjeles parancsok alapján épített integrációkat, a szerverhez és a webalkalmazáshoz funkciókat hozzáadó alkalmazásokat (bővítményeket), valamint az Antimatter forráskódból történő fordítását és hozzájárulását.
Az Antimatter kiterjesztésének módjai
Válaszd ki a legkönnyebb eszközt, amely elvégzi a feladatot. Az első négy nem igényel közvetlen hozzáférést a szerverhez; az alkalmazások a szerveren belül futnak.
| Eszköz | Mire szolgál | Alkalmas erre |
|---|---|---|
| REST API | Minden, amit az alkalmazások tudnak: üzenetek, csatornák, felhasználók, fájlok, beállítások. A WebSocket eseményeket küld, ahogy azok bekövetkeznek. | Szkriptek, szinkronizálás más rendszerekkel, egyedi kliensek. |
| Bejövő webhooks | Egy titkos URL, amely üzenetet küld egy csatornába, ha valaki JSON-t küld hozzá. | Riasztások, CI-eredmények, monitoring, értesítések más eszközöktől. |
| Kimenő webhooks | Az Antimatter a te URL-edet hívja meg, ha egy nyílt csatornában egy üzenet egy kiváltószóval kezdődik, vagy ha valaki kiválasztja a te műveleted egy üzenet menüjében, és ezután beküldi a válaszod. | Egyszerű, chat-alapú automatizálások, amelyek egy üzenetet küldenek egy másik eszköznek. |
| Perjeles parancsok | A felhasználók beírják a /something parancsot; az Antimatter meghívja a te URL-edet, és megmutatja a válaszodat nekik vagy a csatornának. | Keresések, chatből indított műveletek. |
| Botok | Programoknak készült fiókok, saját tokenekkel, BOT címkével, interaktív üzenetekkel és párbeszédekkel. | Asszisztensek, értesítők, bármi, ami beszélget a felhasználókkal. |
| Alkalmazások (bővítmények) | Kód, amely a szerveren (Go) és a webalkalmazásban (React) fut: hookok minden üzenetre, új menük, panelek, üzenettípusok, oldalak. | Funkciók: szavazások, megjegyzések, naptárak, olyan integrációk, amelyeknek felhasználói felület kell. |
A felületen a felhasználók „alkalmazásnak” nevezik a bővítményeket. Ez az útmutató „alkalmazások (bővítmények)” formában írja, ahol mindkét szó hasznos, mert a kód, az API és a konfiguráció továbbra is „plugin”-t használ.
Kompatibilitás a Mattermosttal
Az Antimatter a Mattermost forkja. Amit egy Mattermost szerveren működik, az általában az Antimatteren is működik.
Mi az, ami azonos
- A REST API a
/api/v4alatt, hitelesítése, WebSocket-je és hibakezelési formátuma. A szerver12.0.0verziót jelent, így a kliensek és alkalmazások, amelyek ellenőrzik a szerver verzióját, egy aktuális Mattermostot látnak. - Webhookok és perjeles parancsok, beleértve a Slack-kompatibilis kimeneti adatokat.
- A szerver plugin API-ja és hookjai: Az Antimatter változatlanul hagyja ezeket. A szerverkód ugyanahhoz a Go modulhoz, a
github.com/mattermost/mattermost/server/publiccsomaghoz illeszkedik. Az Antimatter csak módszereket ad hozzá a saját AI-szolgáltatásához (lásd: Az AI-szolgáltatás). - A webes alkalmazás plugin-rejegzere: a Mattermost-rejegyző minden
register…metódusa mindkét Antimatter-webes felületen is elérhető. - Klienskönyvtárak: a Go kliens
model.Client4és a TypeScript kliens@mattermost/client(lásd: Klienskönyvtárak). - Plugin-csomagok:
.tar.gzfájlplugin.jsonmanifeszttel. A Mattermost kulcsával aláírt pluginok telepíthetők, ahogy az Antimatter kulcsával aláírtak is.
Mi más
- Két webes felület. Az új felület, a Fusion, az alapértelmezett; a klasszikus Mattermost-felület továbbra is elérhető. A Fusion a legtöbb plugin-komponenset megjeleníti, de néhányat máshol helyez el, és egy-kettőt kihagy. Az alkalmazás meg tudja állapítani, melyik felület fut. Lásd: A Fusion-felület támogatása.
- További API. Az Antimatter végpontokat ad hozzá a saját funkcióihoz: közösségi attribútumok, időkorlátok, üzenetek a tetején, üzenetkérések, csatorna- és kategória-felülírások, csatornaexportálás, üzenetszálak áthelyezése, modellkapcsolatok, üzenetműveletek, valamint új mezők a közösségekhez. Lásd: Mit ad az Antimatter az API-hoz.
- Bővített üzenetfunkciók. Az üzenet-csatolmányok pipeline-fázisokat és egy kis diagramot is megjeleníthetnek; a bejegyzések lehetnek inline-válaszok vagy spoilerek.
- További webalkalmazás-hookok az alkalmazásokhoz: a szerkesztő „+” menüpontja, emoji-választó fülek, panel a csatorna nézetben, lábléc az oldalsáv csatornái alatt, bejegyzés az integrációk oldalain, az emoji-választó hozzáadása és kezelése nézetei, valamint egy oldalsó panel, amely új ablakban is ott nyílik meg, ahol korábban volt. Lásd: Hookok, amelyeket csak az Antimatter kínál.
- Nincs licenc. Minden funkció licenc nélkül elérhető. A licenc, a próba és a vállalati frissítés végpontjai eltűntek; a
GET /api/v4/license/clientvégpont mégis fennmaradt azokat a klienseket kérő kliensek számára. Egyes Mattermost fizetős kiadásaihoz készült alkalmazások maguk ellenőrzik a licencet, és nem futtatják, ha nincs. - Nevek. A felületen a csapatokat közösségeknek nevezik, de az API és a kód továbbra is
team(csapat) nevet használ. A környezeti változók aAM_előtagot használják, a parancssori eszközamctl, a szerver bináris pedigantimatter.
Hol található a kód
Minden nyílt forráskódú, a GitHubon található AntimatterChat szervezetnél. Minden tárhely a main ágon működik.
| Tárhely | Tartalma |
|---|---|
| antimatter | A szerver (Go, a server/ könyvtárban), mindkét webes felület (webapp/fusion és webapp/channels), a TypeScript-kliens és az amctl. |
| antimatter-docker | A Docker-képek a csomagolt alkalmazásokkal, valamint a compose-fájlok. |
antimatter-plugin-* | Egy tárhely minden csomagolt alkalmazáshoz: polls, todo, notes, whiteboard, calendar, mail, gifs, memes, voice-channels, calls, boards (Kanban), playbooks, agents és metrics. |
| gifs-server | A GIFs-alkalmazás által használt, saját hostingú GIF- és matrica-szolgáltatás. |
| desktop-app, mobile-app, push-proxy | Az asztali és mobilalkalmazások, valamint a szolgáltatás, amely továbbítja a push-értesítéseket a telefonokra. |
| antimatter.chat | Ez a weboldal és annak dokumentációja. |
| community | Hibajelentések és viták az Antimatter minden részéhez. |
Mielőtt elkezded
- Szerelj be egy teszt szervert. A leggyorsabb módszer a Docker-képe: lásd a Az Antimatter telepítése oldalt. Ha az Antimatter fejlesztésén dolgozol, lásd a Forráskódból történő fordítás oldalt.
- Nézd meg, mit engedélyez a szerver. Több integrációs funkció alapértelmezetten le van tiltva, és rendszergazdai jogosultságot igényel: személyes hozzáférési tokenek, bot-fiókok, felhasználónév- és ikon-átírás, valamint alkalmazások feltöltése. Minden oldal jelzi, melyik beállítást igényli.
- Ismerd meg a weboldalod URL-címét. A példákban a
https://chat.example.comcímet használjuk. Cseréld ki a saját szervered címére.
Ez az útmutató
- REST API: hitelesítés, fő erőforrások, lapozás, hibák, sebességkorlátok, WebSocket, kliens könyvtárak, valamint az Antimatter saját kiegészítései.
- Webhookok: bejövő és kimenő webhookok, terhelés (payload), csatolmányok és kártyák.
- Perjeles parancsok: egyedi parancsok, kérésük és válaszuk, automatikus kiegészítés.
- Botok és interaktív üzenetek: bot-fiókok, gombok, menük és párbeszédablakok.
- Alkalmazások írása: a bővítmény felépítése, szerver hookok, a webalkalmazás-rejiszter, a Fusion, beállítások, tárolás, fordítások és csomagolás.
- Forráskódból történő fordítás: a szerver, a webes felületek, a Docker-kép és az alkalmazások.
- Közreműködés: hibajelentések (issues), pull requestek, stílus, fordítások, biztonság és licencök.