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øyHva det gjørGodt for
REST APIAlt appene gjør: meldinger, kanaler, personer, filer, innstillinger. En WebSocket sender hendelser når de skjer.Skripter, synkronisering med andre systemer, egne klienter.
Innkommende webhooksEn 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 webhooksAntimatter 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-kommandoerFolk skriver /something; Antimatter ringer URL-en din og viser svaret ditt til dem eller til kanalen.Oppslag, handlinger startet fra chatten.
BotsKontoer 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 versjon 12.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.Client4 og TypeScript-klienten @mattermost/client (se Klientbiblioteker).
  • Plugin-pakker: en .tar.gz med en plugin.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/client finnes 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 prefikset AM_, kommandolinjeværktøyet er amctl og serverbinærfilen er antimatter.

Hvor koden befinner seg

Alt er åpen kildekode i AntimatterChat-organisasjonen på GitHub. Alle repositoriene arbeider på main-greinen.

RepositoriumInnhold
antimatterServeren (Go, i server/), begge grensesnittene for nett (webapp/fusion og webapp/channels), TypeScript-klienten og amctl.
antimatter-dockerDocker-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-serverTjenesten for selvhostede GIF-er og klistermerker som brukes av GIF-appen.
desktop-app, mobile-app, push-proxySkrivebords- og mobilappene, og tjenesten som videresender push-varsler til telefoner.
antimatter.chatDenne nettsiden og dokumentasjonen.
communityProblemer 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.
Spørsmål er velkomne i fellesskapsdiskusjonene. Meld om feil i fellesskapsproblemer.