Разработка върху Antimatter
Това ръководство е за разработчици. То обхваща скриптове и ботове, които използват API-то, интеграции, построени върху webhooks и команди с наклонена черта, приложения (плъгини), които добавят функции на сървъра и уеб приложението, и компилиране на Antimatter от изходния код, за да допринесете за него.
Начини за разширяване на Antimatter
Изберете най-лекия инструмент, който свършва работата. Първите четири не изискват достъп до самия сървър; приложенията се изпълняват в него.
| Инструмент | Какво прави | Подходящ за |
|---|---|---|
| REST API | Всичко, което приложенията правят: съобщения, канали, хора, файлове, настройки. WebSocket изпраща събития, докато те се случват. | Скриптове, синхронизация с други системи, персонализирани клиенти. |
| Входящи webhooks | Тайна URL, която публикува съобщение в канал, когато нещо изпрати JSON. | Аларми, резултати от CI, мониторинг, известия от други инструменти. |
| Изходящи webhooks | Antimatter извиква вашия URL, когато съобщение в публичен канал започва с тригерна дума, или когато някой избере вашето действие от менюто на съобщение, и публикува вашия отговор. | Прости автоматизации, управлявани чрез чат, които изпращат съобщение до друг инструмент. |
| Команди с наклонена черта | Хората въвеждат /something; Antimatter извиква вашия URL и показва вашия отговор на тях или на канала. | Поиска, действия, стартирани от чата. |
| Ботове | Акаунти, създадени за програми, със собствени токени, етикет БОТ (АГЕНТ за AI агенти) и интерактивни съобщения и диалогове. | Помощници, известия, AI агенти, които управлявате сами – всичко, което комуникира с хора. |
| Приложения (плъгини) | Код, който се изпълнява в сървъра (Go) и в уеб приложението (React): хукове за всяко съобщение, нови менюта, панели, типове съобщения, страници. | Функции: анкети, бележки, календари, интеграции, които изискват потребителски интерфейс. |
В интерфейса хората наричат плъгините „приложения“. Това ръководство използва „приложения (плъгини)“, където и двете думи помагат, защото кодът, API-то и конфигурацията все още използват „плъгин“.
Съвместимост с Mattermost
Antimatter е форк на Mattermost. Повечето от това, което работи със сървър на Mattermost, работи и с Antimatter.
Какво е същото
- REST API под
/api/v4, неговата автентикация, неговият WebSocket и неговият формат на грешки. Сървърът докладва версия12.0.0, така че клиентите и приложенията, които проверяват версията на сървъра, виждат съвременен Mattermost. - Webhooks и команди с наклонена черта, включително техните съвместими със Slack данни.
- API и хукове на сървърния плъгин: Antimatter ги запазва в непроменен вид. Сървърният код се изгражда върху същия Go модул,
github.com/mattermost/mattermost/server/public. Antimatter добавя само методи за своята AI услуга (вижте AI услугата). - Реестър на плъгини за уеб приложението: всеки метод
register…от реестъра на Mattermost съществува и в двата уеб интерфейса на Antimatter. - Клиентски библиотеки: Go клиентът
model.Client4и TypeScript клиентът@mattermost/client(вижте Клиентски библиотеки). - Пакети с плъгини:
.tar.gzфайл с манифестplugin.json. Плъгини, подписани с ключа на Mattermost, се инсталират, както и тези, подписани с ключа на Antimatter.
Какво е различно
- Два уеб интерфейса. Новият интерфейс, Fusion, е по подразбиране; класическият интерфейс на Mattermost все още е наличен. Fusion изобразява повечето компоненти на плъгините, но разполага някои от тях по различен начин и пропуска няколко. Приложението може да определи кой интерфейс се използва. Вижте Поддръжка на интерфейса Fusion.
- Допълнително API. Antimatter добавя ендпойнти за собствените си функции: атрибути на общността, таймаути, съобщения отгоре, заявки за съобщения, заобикаляне на настройки за канали и категории, експорт на канали, преместване на нишки, връзки с модели, действия върху съобщения и нови полета за общности. Вижте Какво Antimatter добавя към API.
- Допълнителни функции за съобщения. Прикачените файлове към съобщения могат да показват етапи от тръба (pipeline) и малка графика; публикациите могат да бъдат вътрешни отговори или спойлери.
- Допълнителни хукове за уеб приложението за приложения: елемент в менюто „+“ на редактора, таблоиди в изборника на емоджи, панел в изгледа на канала, футър под каналите в страничната лента, запис на страниците за интеграции, изгледите за добавяне и управление в изборника на емоджи, и страничен панел, който се отваря отново на същото място в нов прозорец. Вижте Хукове, които има само Antimatter.
- Няма лицензи. Всяка функция е налична без лицензионен ключ. Краищата за лиценз, пробен период и корпоративно надграждане са премахнати;
GET /api/v4/license/clientостава за клиенти, които го изискват. Някои приложения, създадени за платените издания на Mattermost, проверяват за лиценз сами и отказват да се изпълняват. - Имена. Екипите се наричат общности в интерфейса, но API и кодът все още използват
team. Променливите на средата използват префиксаAM_, инструментът за команден ред еamctl, а сървърният бинарен файл еantimatter.
Къде се намира кодът
Всичко е с отворен код в организацията AntimatterChat на GitHub. Всеки репозиторий работи върху своята main клон.
| Репозиторий | Съдържание |
|---|---|
| antimatter | Сървърът (на Go, в server/), двете уеб интерфейса (webapp/fusion и webapp/channels), TypeScript клиентът и amctl. |
| antimatter-docker | Docker образите, включващи приложенията, и compose файловете. |
antimatter-plugin-* | По един репозиторий за всяко вградено приложение: polls, todo, notes, whiteboard, calendar, mail, gifs, memes, voice-channels, calls, boards (Kanban), playbooks, agents и metrics. |
| gifs-server | Самостоятелно хостингуван GIF и стикер сервис, използван от приложението GIFs. |
| desktop-app, mobile-app, push-proxy | Десктопното и мобилното приложение, както и услугата, която препраща push известията до телефоните. |
| antimatter.chat | Този уебсайт и неговата документация. |
| community | Проблеми и дискусии за всяка част от Antimatter. |
Преди да започнете
- Подгответе тестов сървър. Най-бързият начин е Docker образът: вижте Инсталиране на Antimatter. За работа върху самия Antimatter, вижте Създаване от изходния код.
- Проверете какво позволява сървърът. Няколко функции за интеграция са изключени по подразбиране и изискват системен администратор: лични достъпни токени, ботови акаунти, промяна на потребителско име и икона, и качване на приложения. Всяка страница посочва каква настройка е необходима.
- Познайте URL-а на сайта си. Примерите използват
https://chat.example.com. Заменете го с адреса на вашия сървър.
В това ръководство
- REST API: автентикация, основни ресурси, пагинация, грешки, лимити на заявки, WebSocket, клиентски библиотеки и добавките на Antimatter.
- Webhooks: входящи и изходящи webhooks, данни (payloads), прикачени файлове и карти.
- Команди с наклонена черта: персонализирани команди, техните заявки и отговори, автодопълване.
- Ботове и интерактивни съобщения: акаунти на ботове, външни агенти, бутони, менюта и диалози.
- Създаване на приложения: структура на плъгините, сървърни хукове, регистър на уеб приложенията, Fusion, настройки, съхранение, преводи и опаковане.
- Създаване от изходния код: сървърът, уеб интерфейсите, Docker образът и приложенията.
- Принос: проблеми, pull requests, стил, преводи, сигурност и лицензи.