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.
| Eina | Què fa | Bona per a |
|---|---|---|
| API REST | Tot 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 entrants | Una 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 sortints | Antimatter 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 barra | Les persones escriuen /something; Antimatter crida la vostra URL i mostra la vostra resposta a elles o al canal. | Consultes, accions iniciades des del xat. |
| Bots | Comptes 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.Client4i el client TypeScript@mattermost/client(vegeu Biblioteques de client). - Paquets de plugins: un
.tar.gzamb un manifestplugin.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/clientcontinua 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 prefixAM_, l'eina de línia d'ordres ésamctli el binari del servidor ésantimatter.
On es troba el codi
Tot és de codi obert, a l'organització AntimatterChat de GitHub. Cada repositori funciona a la seva branca main.
| Repositori | Contingut |
|---|---|
| antimatter | El servidor (en Go, a server/), les dues interfícies web (webapp/fusion i webapp/channels), el client en TypeScript i amctl. |
| antimatter-docker | Les 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-server | El servei de GIF i adhesius autoallotjat que utilitza l'aplicació GIFs. |
| desktop-app, mobile-app, push-proxy | Les aplicacions per a ordinador i mòbil, i el servei que reenvia les notificacions push als telèfons. |
| antimatter.chat | Aquest lloc web i la seva documentació. |
| community | Problemes 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.