Desenvolupament sobre Antimatter

Aquesta guia és per a desenvolupadors. Aborda els scripts i els bots que utilitzen l'API, les integracions basades en webhooks i comandes amb barra, les aplicacions (plugins) que afegeixen funcions al servidor i a l'aplicació web, i la compilació d'Antimatter des del codi font per contribuir-hi.

Formes d'expandir Antimatter

Trieu l'eina més lleugera que faci la feina. Les quatre primeres no requereixen accés al propi servidor; les aplicacions s'executen dins d'aquest.

EinaQuè faBona per a
API RESTTot el que fan les aplicacions: missatges, canals, persones, fitxers, configuració. Un WebSocket envia esdeveniments a mesura que es produeixen.Scripts, sincronització amb altres sistemes, clients personalitzats.
Webhooks entrantsUna URL secreta que publica un missatge en un canal quan alguna cosa li envia JSON.Alertes, resultats de CI, supervisió, notificacions d'altres eines.
Webhooks sortintsAntimatter crida el teu URL quan un missatge en un canal públic comença amb una paraula de desencadenament, o quan algú tria la teva acció al menú d'un missatge, i publica la teva resposta.Automatitzacions senzilles basades en xat, que envien un missatge a una altra eina.
Comandes amb barraLes persones escriuen /something; Antimatter crida la vostra URL i mostra la vostra resposta a elles o al canal.Consultes, accions iniciades des del xat.
BotsComptes creats per a programes, amb els seus propis tokens, una etiqueta BOT (AGENT per a agents d'IA) i missatges i diàlegs interactius.Assistents, notificadors, agents d'IA que executeu vosaltres mateixos, qualsevol cosa que parli amb les persones.
Aplicacions (plugins)Codi que s'executa dins del servidor (Go) i a l'aplicació web (React): ganxos en cada missatge, nous menús, panells, tipus de missatge, pàgines.Funcions: enquestes, notes, calendaris, integracions que necessiten la interfície d'usuari.

A la interfície, les persones anomenen els plugins «aplicacions». Aquesta guia diu «aplicacions (plugins)» quan ambdues paraules ajuden, perquè el codi, l'API i la configuració encara diuen «plugin».

Compatibilitat amb Mattermost

Antimatter és un bifurcament de Mattermost. La majoria del que funciona amb un servidor de Mattermost funciona amb Antimatter.

Què és igual

  • L'API REST sota /api/v4, la seva autenticació, el seu WebSocket i el seu format d'error. El servidor informa la versió 12.0.0, de manera que els clients i les aplicacions que verifiquen la versió del servidor veuen un Mattermost recent.
  • Webhooks i comandes amb barra, inclosos els seus càrregues compatibles amb Slack.
  • L'API i els hooks del servidor: Antimatter els manté tal com són. El codi del servidor es construeix sobre el mateix mòdul Go, github.com/mattermost/mattermost/server/public. Antimatter només afegeix mètodes per al seu servei d'IA (vegeu El servei d'IA).
  • El registre de plugins de l'aplicació web: tots els mètodes register… del registre de Mattermost existeixen en les dues interfícies web d'Antimatter.
  • Biblioteques de client: el client Go model.Client4 i el client TypeScript @mattermost/client (vegeu Biblioteques de client).
  • Paquets de plugins: un .tar.gz amb un manifest plugin.json. S'instal·len els plugins signats amb la clau de Mattermost, així com els signats amb la clau d'Antimatter.

Què és diferent

  • Dues interfícies web. La nova interfície, Fusion, és la predeterminada; la interfície clàssica de Mattermost continua estant disponible. Fusion renderitza la majoria dels components dels plugins, però n'ubica alguns de manera diferent i n'omete uns quants. Una aplicació pot saber quina interfície s'està executant. Vegeu Compatibilitat amb la interfície Fusion.
  • API addicional. Antimatter afegeix punts d'extrem per a les seves pròpies funcions: atributs de la comunitat, temps d'espera, missatges superiors, sol·licituds de missatges, substitucions de canals i categories, exportació de canals, moviment de fils, connexions de models, accions de missatges i nous camps a les comunitats. Vegeu Què afegeix Antimatter a l'API.
  • Funcions addicionals de missatges. Els adjunts dels missatges poden mostrar etapes del flux de treball i un petit gràfic; les publicacions poden ser respostes en línia o spoilers.
  • Hooks addicionals de l'aplicació web per a les aplicacions: un element al menú «+» del compositor, pestanyes del selector d'emoji, un panell a la vista del canal, un peu sota els canals de la barra lateral, una entrada a les pàgines d'integracions, les vistes d'addició i gestió del selector d'emoji, i un panell lateral que es reobre on estava en una finestra nova. Vegeu Hooks que només té Antimatter.
  • Sense llicències. Totes les funcions estan disponibles sense clau de llicència. Els punts d'extrem de llicència, prova i actualització empresarial han desaparegut; GET /api/v4/license/client continua existint per als clients que ho sol·liciten. Algunes aplicacions creades per a les edicions de pagament de Mattermost verifiquen la llicència elles mateixes i es neguen a executar-se.
  • Noms. Els equips s'anomenen comunitats a la interfície, però l'API i el codi encara diuen team. Les variables d'entorn utilitzen el prefix AM_, l'eina de línia d'ordres és amctl i el binari del servidor és antimatter.

On es troba el codi

Tot és de codi obert, a l'organització AntimatterChat de GitHub. Cada repositori funciona a la seva branca main.

RepositoriContingut
antimatterEl servidor (en Go, a server/), les dues interfícies web (webapp/fusion i webapp/channels), el client en TypeScript i amctl.
antimatter-dockerLes imatges de Docker, amb les aplicacions integrades, i els fitxers compose.
antimatter-plugin-*Un repositori per a cada aplicació integrada: polls, todo, notes, whiteboard, calendar, mail, gifs, memes, voice-channels, calls, boards (Kanban), playbooks, agents i metrics.
gifs-serverEl servei de GIF i adhesius autoallotjat que utilitza l'aplicació GIFs.
desktop-app, mobile-app, push-proxyLes aplicacions per a ordinador i mòbil, i el servei que reenvia les notificacions push als telèfons.
antimatter.chatAquest lloc web i la seva documentació.
communityProblemes i debats per a cada part d'Antimatter.

Abans de començar

  • Obtén un servidor de proves. La manera més ràpida és utilitzar la imatge de Docker: consulta Com instal·lar Antimatter. Per treballar sobre el propi Antimatter, consulta Com compilar-lo des del codi font.
  • Comprova què permet el servidor. Diverses funcions d'integració estan desactivades per defecte i requereixen un administrador del sistema: tokens d'accés personals, comptes de bot, substitucions de nom d'usuari i icona, i la pujada d'aplicacions. Cada pàgina indica quina configuració necessita.
  • Conèix l'URL del teu lloc web. Els exemples utilitzen https://chat.example.com. Substitueix-la per l'adreça del teu servidor.

En aquesta guia

  • L'API REST: autenticació, recursos principals, paginació, errors, límits de taxa, el WebSocket, les biblioteques de client i les afegides d'Antimatter.
  • Webhooks: webhooks entrants i sortints, càrregues, adjunts i targetes.
  • Comandes amb barra: comandes personalitzades, la seva sol·licitud i resposta, i l'autocompleció.
  • Bots i missatges interactius: comptes de bots, agents externs, botons, menús i diàlegs.
  • Escriure aplicacions: l'estructura del connector, els ganchos del servidor, el registre de l'aplicació web, Fusion, la configuració, l'emmagatzematge, les traduccions i l'empaquetat.
  • Compilació des del codi font: el servidor, les interfícies web, la imatge de Docker i les aplicacions.
  • Contribucions: problemes, sol·licituds de canvi, estil, traduccions, seguretat i llicències.
Les preguntes són benvingudes a les discussions de la comunitat. Informa dels errors a les incidències de la comunitat.