Construind pe Antimatter

Acest ghid este destinat dezvoltatorilor. Acoperă scripturile și boturile care utilizează API-ul, integrările construite pe webhooks și comenzi cu slash, aplicațiile (pluginurile) care adaugă funcționalități serverului și aplicației web, precum și compilarea Antimatter din sursă pentru a contribui la proiect.

Modalități de extindere a Antimatter

Alegeți cea mai simplă unealtă care îndeplinește sarcina. Primele patru nu necesită acces la serverul propriu-zis; aplicațiile rulează în interiorul acestuia.

UnealtăCe facePotrivită pentru
API RESTTot ce fac aplicațiile: mesaje, canale, utilizatori, fișiere, setări. Un WebSocket trimite evenimente pe măsură ce apar.Scripturi, sincronizare cu alte sisteme, clienți personalizati.
Webhooks de primireO URL secretă care publică un mesaj într-un canal când un alt sistem trimite JSON.Alerte, rezultate CI, monitorizare, notificări de la alte instrumente.
Webhooks de trimitereAntimatter apelează URL-ul dvs. atunci când un mesaj într-un canal public începe cu un cuvânt de declanșare, sau când cineva alege acțiunea dvs. din meniul unui mesaj, și publică răspunsul dvs.Automatizări simple bazate pe chat, care trimit un mesaj către altă unealtă.
Comenzi cu slashUtilizatorii tastează /something; Antimatter apelează URL-ul dvs. și afișează răspunsul lor sau canalului.Căutări, acțiuni inițiate din chat.
BoturiConturi create pentru programe, cu tokeni proprii, o etichetă BOT și mesaje și dialoguri interactive.Asistenți, notificatori, orice care comunică cu utilizatorii.
Aplicații (pluginuri)Cod care rulează în interiorul serverului (Go) și în aplicația web (React): hook-uri pentru fiecare mesaj, meniuri noi, panouri, tipuri de mesaje, pagini.Funcționalități: sondaje, note, calendare, integrări care necesită interfața utilizatorului.

În interfață, utilizatorii numesc pluginurile „aplicații”. Acest ghid folosește „aplicații (pluginuri)” acolo unde ambele termene ajută, deoarece codul, API-ul și configurația folosesc încă termenul „plugin”.

Compatibilitate cu Mattermost

Antimatter este un fork al Mattermost. Majoritatea funcționalităților care funcționează cu un server Mattermost funcționează și cu Antimatter.

Ce este identic

  • API-ul REST de sub /api/v4, autentificarea acestuia, WebSocket-ul și formatul de erori. Serverul raportează versiunea 12.0.0, astfel încât clienții și aplicațiile care verifică versiunea serverului văd un Mattermost recent.
  • Webhooks și comenzi cu slash, inclusiv sarcinile lor compatibile cu Slack.
  • API-ul și hook-urile pluginului de server: Antimatter le păstrează neschimbate. Codul serverului este construit pe același modul Go, github.com/mattermost/mattermost/server/public. Antimatter adaugă doar metode, pentru serviciul său de AI (a se vedea Serviciul de AI).
  • Registrul de plugin-uri pentru aplicația web: fiecare metodă register… din registrul Mattermost există în ambele interfețe web ale Antimatter.
  • Biblioteci client: clientul Go model.Client4 și clientul TypeScript @mattermost/client (a se vedea Biblioteci client).
  • Pachete de plugin-uri: un .tar.gz cu un manifest plugin.json. Plugin-urile semnate cu cheia Mattermost se instalează, la fel ca și cele semnate cu cheia Antimatter.

Ce este diferit

  • Doi interfețe web. Interfața nouă, Fusion, este implicită; interfața clasică Mattermost este încă disponibilă. Fusion randează majoritatea componentelor plugin-urilor, dar le plasează pe unele diferit și lasă câteva în afara. O aplicație poate determina care interfață este în funcțiune. A se vedea Suport pentru interfața Fusion.
  • API suplimentar. Antimatter adaugă endpoint-uri pentru funcțiile sale proprii: atribute de comunitate, timpi de așteptare, mesaje deasupra, cereri de mesaje, suprascrieri de canal și de categorie, export de canal, mutarea firelor de discuție, conexiuni de modele, acțiuni de mesaj și noi câmpuri pentru comunități. A se vedea Ce adaugă Antimatter la API.
  • Funcții suplimentare pentru mesaje. Atașamentele mesajelor pot afișa etape de pipeline și un grafic mic; postările pot fi răspunsuri inline sau spoilere.
  • Hook-uri suplimentare pentru aplicația web pentru aplicații: un element de meniu „+” în compozitor, taburi în selectorul de emoji, un panou în vederea canalului, un subsol sub canalele din bara laterală, o intrare în paginile de integrări, vederile de adăugare și administrare din selectorul de emoji și un panou lateral care se redeschide în același loc într-o fereastră nouă. A se vedea Hook-uri pe care le are doar Antimatter.
  • Fără licențe. Fiecare funcție este disponibilă fără o cheie de licență. Endpoint-urile pentru licență, trial și upgrade la ediția enterprise au fost eliminate; GET /api/v4/license/client rămâne pentru clienții care o solicită. Unele aplicații create pentru edițiile plătite Mattermost verifică licența în sine și refuză să ruleze.
  • Nume. Echipele sunt numite comunități în interfață, dar API-ul și codul încă spun team. Variabilele de mediu folosesc prefixul AM_, instrumentul de linie de comandă este amctl și binarul serverului este antimatter.

Unde se află codul

Totul este open source, în organizația AntimatterChat de pe GitHub. Fiecare depozit funcționează pe ramura sa main.

DepozitCe conține
antimatterServerul (Go, în server/), ambele interfețe web (webapp/fusion și webapp/channels), clientul TypeScript și amctl.
antimatter-dockerImaginile Docker, cu aplicațiile incluse, și fișierele compose.
antimatter-plugin-*Un depozit pentru fiecare aplicație inclusă: polls, todo, notes, whiteboard, calendar, mail, gifs, memes, voice-channels, calls, boards (Kanban), playbooks, agents și metrics.
gifs-serverServiciul self-hosted de GIF-uri și stickere folosit de aplicația GIFs.
desktop-app, mobile-app, push-proxyAplicațiile desktop și mobile, și serviciul care retransmite notificările push către telefoane.
antimatter.chatAcest site și documentația sa.
communityProbleme și discuții pentru fiecare componentă a Antimatter.

Înainte de a începe

  • Obțineți un server de test. Cel mai rapid este imaginea Docker: consultați Instalarea Antimatter. Pentru a lucra la Antimatter în sine, consultați Compilarea din sursă.
  • Verificați ce permite serverul. Mai multe funcții de integrare sunt dezactivate implicit și necesită un administrator de sistem: tokeni de acces personal, conturi de bot, suprascrierea numelui de utilizator și a pictogramei, și încărcarea aplicațiilor. Fiecare pagină indică ce setare este necesară.
  • Cunoașteți URL-ul site-ului. Exemplele folosesc https://chat.example.com. Înlocuiți-l cu adresa serverului dumneavoastră.

În acest ghid

  • API-ul REST: autentificare, resurse principale, paginare, erori, limite de rată, WebSocket, biblioteci client și adăugirile Antimatter.
  • Webhooks: webhooks de intrare și de ieșire, payload-uri, atașamente și carduri.
  • Comenzi cu slash: comenzi personalizate, cererea și răspunsul lor, completarea automată.
  • Boți și mesaje interactive: conturi de bot, butoane, meniuri și dialoguri.
  • Scrierea de aplicații: structura pluginului, hook-urile serverului, registrul aplicației web, Fusion, setări, stocare, traduceri și împachetare.
  • Compilarea din sursă: serverul, interfețele web, imaginea Docker și aplicațiile.
  • Contribuții: probleme, pull requests, stil, traduceri, securitate și licențe.
Întrebările sunt binevenite în discuțiile comunității. Raportați erorile în problemele comunității.