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 face | Potrivită pentru |
|---|---|---|
| API REST | Tot 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 primire | O 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 trimitere | Antimatter 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 slash | Utilizatorii tastează /something; Antimatter apelează URL-ul dvs. și afișează răspunsul lor sau canalului. | Căutări, acțiuni inițiate din chat. |
| Boturi | Conturi 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ă versiunea12.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.gzcu un manifestplugin.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/clientră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 prefixulAM_, instrumentul de linie de comandă esteamctlși binarul serverului esteantimatter.
Unde se află codul
Totul este open source, în organizația AntimatterChat de pe GitHub. Fiecare depozit funcționează pe ramura sa main.
| Depozit | Ce conține |
|---|---|
| antimatter | Serverul (Go, în server/), ambele interfețe web (webapp/fusion și webapp/channels), clientul TypeScript și amctl. |
| antimatter-docker | Imaginile 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-server | Serviciul self-hosted de GIF-uri și stickere folosit de aplicația GIFs. |
| desktop-app, mobile-app, push-proxy | Aplicațiile desktop și mobile, și serviciul care retransmite notificările push către telefoane. |
| antimatter.chat | Acest site și documentația sa. |
| community | Probleme ș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.