Bygge på Antimatter
Denne guiden er for utviklere. Den dekker skripter og bots som bruker API-et, integrasjoner bygget på webhooks og skråstrek-kommandoer, apper (plugins) som legger til funksjonalitet til serveren og nettappen, samt bygging av Antimatter fra kildekode for å bidra til den.
Måter å utvide Antimatter på
Velg det letteste verktøyet som gjør jobben. De fire første krever ikke tilgang til selve serveren; apper kjører inne i den.
| Verktøy | Hva det gjør | Godt for |
|---|---|---|
| REST API | Alt appene gjør: meldinger, kanaler, personer, filer, innstillinger. En WebSocket sender hendelser når de skjer. | Skripter, synkronisering med andre systemer, egne klienter. |
| Innkommende webhooks | En hemmelig URL som poster en melding til en kanal når noe sender JSON til den. | Varsler, CI-resultater, overvåking, varsler fra andre verktøy. |
| Utgående webhooks | Antimatter kaller URL-en din når en melding i en offentlig kanal starter med et utløsende ord, eller når noen velger handlingen din i menyen for en melding, og poster svaret ditt. | Enkle automatiseringer drevet av chat, som sender en melding til et annet verktøy. |
| Skråstrek-kommandoer | Folk skriver /something; Antimatter ringer URL-en din og viser svaret ditt til dem eller til kanalen. | Oppslag, handlinger startet fra chatten. |
| Bots | Kontoer laget for programmer, med egne tokens, et BOT-merke, samt interaktive meldinger og dialoger. | Assistentene, varsler, alt som snakker med folk. |
| Apper (plugins) | Kode som kjører inne i serveren (Go) og i nettappen (React): krokker på alle meldinger, nye menyer, paneler, meldingstyper, sider. | Funksjoner: avstemninger, notater, kalendere, integrasjoner som trenger brukergrensesnittet. |
I grensesnittet kaller folk plugins «apper». Denne guiden sier «apper (plugins)» der begge ordene hjelper, fordi koden, API-et og konfigurasjonen fortsatt sier «plugin».
Kompatibilitet med Mattermost
Antimatter er en fork av Mattermost. Det meste som fungerer med en Mattermost-server, fungerer også med Antimatter.
Hva som er det samme
- REST API-et under
/api/v4, dets autentisering, dets WebSocket og dets feilformat. Serveren rapporterer versjon12.0.0, så klienter og apper som sjekker serverversjonen ser en nyere versjon av Mattermost. - Webhooks og skråstrek-kommandoer, inkludert deres Slack-kompatible laster.
- Server-plugin-API og hooks: Antimatter beholder dem som de er. Serverkoden bygges mot samme Go-modul,
github.com/mattermost/mattermost/server/public. Antimatter legger bare til metoder for sin AI-tjeneste (se AI-tjenesten). - Webapp-plugin-registeret: alle
register…-metoder i Mattermosts register finnes i begge Antimatters webgrensesnitt. - Klientbiblioteker: Go-klienten
model.Client4og TypeScript-klienten@mattermost/client(se Klientbiblioteker). - Plugin-pakker: en
.tar.gzmed enplugin.json-manifest. Plugins signert med Mattermosts nøkkel installeres, og det samme gjør de som er signert med Antimatters nøkkel.
Hva som er annerledes
- To webgrensesnitt. Det nye grensesnittet, Fusion, er standard; det klassiske Mattermost-grensesnittet er fortsatt tilgjengelig. Fusion renderer de fleste plugin-komponenter, men plasserer noen av dem på en annen måte og utelater noen få. En app kan se hvilket grensesnitt som kjører. Se Støtte for Fusion-grensesnittet.
- Ekstra API. Antimatter legger til endepunkter for sine egne funksjoner: community-attributter, tidsavbrudd, meldinger øverst, meldingsforespørsler, overstyring av kanaler og kategorier, eksport av kanaler, flytting av tråder, modellkoblinger, meldingshandlinger og nye felter på communities. Se Hva Antimatter legger til i API-et.
- Ekstra meldingsfunksjoner. Vedlegg til meldinger kan vise pipeline-trinn og en liten graf; innlegg kan være inline-svar eller spoilere.
- Ekstra webapp-hooks for apper: et «+»-menyelement i skrivefeltet, faner i emoji-velgeren, et panel i kanalvisningen, en bunntekst under kanaler i sidefeltet, en oppføring på integrasjonssidene, visningene for å legge til og administrere i emoji-velgeren, og et sidepanel som gjenåpnes der det var i et nytt vindu. Se Hooks som bare Antimatter har.
- Ingen lisenser. Alle funksjoner er tilgjengelige uten lisensnøkkel. Endepunktene for lisens, prøveperiode og enterprise-opgradering er borte;
GET /api/v4/license/clientfinnes fortsatt for klienter som ber om det. Noen apps laget for Mattermosts betalte utgaver sjekker for en lisens selv og nekter å kjøre. - Navn. Teams kalles communities i grensesnittet, men API-et og koden sier fortsatt
team. Miljøvariabler bruker prefiksetAM_, kommandolinjeværktøyet eramctlog serverbinærfilen erantimatter.
Hvor koden befinner seg
Alt er åpen kildekode i AntimatterChat-organisasjonen på GitHub. Alle repositoriene arbeider på main-greinen.
| Repositorium | Innhold |
|---|---|
| antimatter | Serveren (Go, i server/), begge grensesnittene for nett (webapp/fusion og webapp/channels), TypeScript-klienten og amctl. |
| antimatter-docker | Docker-bildene, med de medfølgende appene, og compose-filene. |
antimatter-plugin-* | Ét repositorium per medfølgende app: polls, todo, notes, whiteboard, calendar, mail, gifs, memes, voice-channels, calls, boards (Kanban), playbooks, agents og metrics. |
| gifs-server | Tjenesten for selvhostede GIF-er og klistermerker som brukes av GIF-appen. |
| desktop-app, mobile-app, push-proxy | Skrivebords- og mobilappene, og tjenesten som videresender push-varsler til telefoner. |
| antimatter.chat | Denne nettsiden og dokumentasjonen. |
| community | Problemer og diskusjoner for alle deler av Antimatter. |
Før du starter
- Skaff deg en testserver. Den raskeste metoden er Docker-bildet: se Installer Antimatter. For å jobbe med selve Antimatter, se Bygg fra kildekode.
- Sjekk hva serveren tillater. Flere integrasjonsfunksjoner er deaktivert som standard og krever en systemadministrator: personlige tilgangstokens, bot-kontoer, overskrivning av brukernavn og ikoner, og opplasting av apper. Hver side oppgir hvilken innstilling som kreves.
- Kjenn nettside-URL-en din. Eksemplene bruker
https://chat.example.com. Erstatt den med adressen til serveren din.
I denne veiledningen
- REST-API-et: autentisering, hovedressurser, paginering, feil, hastighetsbegrensninger, WebSocket, klientbiblioteker og Antimatters tillegg.
- Webhooks: innkommende og utgående webhooks, last, vedlegg og kort.
- Skråstrek-kommandoer: egne kommandoer, deres forespørsel og svar, autofullføring.
- Bots og interaktive meldinger: bot-kontoer, knapper, menyer og dialoger.
- Skrive apper: plugin-strukturen, serverhooks, webapp-registret, Fusion, innstillinger, lagring, oversettelser og pakking.
- Bygg fra kildekode: serveren, webgrensesnittene, Docker-bildet og appene.
- Bidra: problemer, pull requests, stil, oversettelser, sikkerhet og lisenser.