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özMire szolgálAlkalmas erre
REST APIMinden, 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ő webhooksEgy 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ő webhooksAz 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 parancsokA 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.
BotokProgramoknak 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/v4 alatt, hitelesítése, WebSocket-je és hibakezelési formátuma. A szerver 12.0.0 verzió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/public csomaghoz 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.gz fájl plugin.json manifeszttel. 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/client vé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 a AM_ előtagot használják, a parancssori eszköz amctl, a szerver bináris pedig antimatter.

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árhelyTartalma
antimatterA szerver (Go, a server/ könyvtárban), mindkét webes felület (webapp/fusion és webapp/channels), a TypeScript-kliens és az amctl.
antimatter-dockerA 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-serverA GIFs-alkalmazás által használt, saját hostingú GIF- és matrica-szolgáltatás.
desktop-app, mobile-app, push-proxyAz asztali és mobilalkalmazások, valamint a szolgáltatás, amely továbbítja a push-értesítéseket a telefonokra.
antimatter.chatEz a weboldal és annak dokumentációja.
communityHibajelenté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.com cí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.
Kérdéseket szívesen fogadunk a közösségi vitafórumon. Hibákat jelezz a közösségi hibajelentések között.