Membangun di atas Antimatter

Panduan ini ditujukan untuk pengembang. Isinya mencakup skrip dan bot yang menggunakan API, integrasi yang dibangun di atas webhook dan perintah garis miring, aplikasi (plugin) yang menambahkan fitur ke server dan aplikasi web, serta cara membangun Antimatter dari sumber untuk berkontribusi.

Cara memperluas Antimatter

Pilih alat paling ringan yang mampu menyelesaikan tugas. Empat alat pertama tidak memerlukan akses ke server itu sendiri; aplikasi berjalan di dalamnya.

AlatFungsinyaCocok untuk
REST APISemua yang dilakukan aplikasi: pesan, kanal, pengguna, file, pengaturan. WebSocket mengirim peristiwa saat terjadi.Skrip, sinkronisasi dengan sistem lain, klien kustom.
Webhook masukURL rahasia yang mengirim pesan ke kanal ketika sesuatu mengirim JSON ke sana.Peringatan, hasil CI, pemantauan, notifikasi dari alat lain.
Webhook keluarAntimatter memanggil URL Anda ketika pesan di kanal publik dimulai dengan kata pemicu, atau ketika seseorang memilih tindakan Anda di menu pesan, lalu memposting balasan Anda.Otomasi sederhana yang didorong oleh chat, mengirim pesan ke alat lain.
Perintah garis miringPengguna mengetik /something; Antimatter memanggil URL Anda dan menampilkan jawaban Anda kepada mereka atau ke kanal.Pencarian, tindakan yang dimulai dari obrolan.
BotAkun yang dibuat untuk program, dengan token sendiri, tag BOT, serta pesan dan dialog interaktif.Asisten, pemberi notifikasi, atau apa pun yang berinteraksi dengan pengguna.
Aplikasi (plugin)Kode yang berjalan di dalam server (Go) dan aplikasi web (React): hook untuk setiap pesan, menu baru, panel, jenis pesan, halaman.Fitur: jajak pendapat, catatan, kalender, integrasi yang memerlukan antarmuka pengguna.

Di antarmuka, pengguna menyebut plugin sebagai "aplikasi". Panduan ini menggunakan "aplikasi (plugin)" di tempat di mana kedua istilah membantu, karena kode, API, dan konfigurasi tetap menyebut "plugin".

Kompatibilitas dengan Mattermost

Antimatter adalah fork dari Mattermost. Sebagian besar yang berfungsi dengan server Mattermost juga berfungsi dengan Antimatter.

Apa yang sama

  • REST API di bawah /api/v4, autentikasinya, WebSocket-nya, dan format galatnya. Server melaporkan versi 12.0.0, sehingga klien dan aplikasi yang memeriksa versi server akan melihat versi Mattermost yang terbaru.
  • Webhook dan perintah garis miring, termasuk payload yang kompatibel dengan Slack.
  • API dan hook plugin server: Antimatter menjaganya tetap seperti semula. Kode server dibangun berdasarkan modul Go yang sama, github.com/mattermost/mattermost/server/public. Antimatter hanya menambahkan metode, untuk layanan AI-nya (lihat Layanan AI).
  • Daftar plugin aplikasi web: setiap metode register… dari daftar Mattermost ada di kedua antarmuka web Antimatter.
  • Perpustakaan klien: klien Go model.Client4 dan klien TypeScript @mattermost/client (lihat Perpustakaan klien).
  • Bundle plugin: file .tar.gz dengan manifest plugin.json. Plugin yang ditandatangani dengan kunci Mattermost dapat diinstal, begitu pula yang ditandatangani dengan kunci Antimatter.

Apa yang berbeda

  • Dua antarmuka web. Antarmuka baru, Fusion, adalah bawaan; antarmuka Mattermost klasik masih tersedia. Fusion merender sebagian besar komponen plugin, tetapi menempatkan beberapa di antaranya secara berbeda dan mengabaikan beberapa lainnya. Aplikasi dapat mengetahui antarmuka mana yang sedang berjalan. Lihat Mendukung antarmuka Fusion.
  • API tambahan. Antimatter menambahkan endpoint untuk fitur-fiturnya sendiri: atribut komunitas, timeout, pesan di atas, permintaan pesan, penimpaan kanal dan kategori, ekspor kanal, pemindahan utas, koneksi model, tindakan pesan, dan bidang baru pada komunitas. Lihat Apa yang ditambahkan Antimatter ke API.
  • Fitur pesan tambahan. Lampiran pesan dapat menampilkan tahap pipeline dan grafik kecil; kiriman dapat berupa balasan inline atau spoiler.
  • Hook aplikasi web tambahan untuk aplikasi: item menu "+" di composer, tab pemilih emoji, panel di tampilan kanal, footer di bawah kanal bilah samping, entri di halaman integrasi, tampilan tambah dan kelola pemilih emoji, dan panel samping yang dibuka kembali di tempat aslinya di jendela baru. Lihat Hook yang hanya dimiliki Antimatter.
  • Tidak ada lisensi. Setiap fitur tersedia tanpa kunci lisensi. Endpoint lisensi, uji coba, dan peningkatan enterprise telah dihapus; GET /api/v4/license/client tetap ada untuk klien yang memintanya. Beberapa aplikasi yang dibuat untuk edisi berbayar Mattermost memeriksa lisensinya sendiri dan menolak untuk dijalankan.
  • Nama. Tim disebut komunitas di antarmuka, tetapi API dan kode masih menyebut team. Variabel lingkungan menggunakan awalan AM_, alat baris perintah adalah amctl, dan biner server adalah antimatter.

Di mana kode berada

Semuanya bersifat sumber terbuka, di organisasi AntimatterChat di GitHub. Setiap repositori bekerja pada cabang main.

RepositoriIsi
antimatterServer (Go, di server/), kedua antarmuka web (webapp/fusion dan webapp/channels), klien TypeScript, dan amctl.
antimatter-dockerGambar Docker, dengan aplikasi bawaan, dan file compose.
antimatter-plugin-*Satu repositori per aplikasi bawaan: polls, todo, notes, whiteboard, calendar, mail, gifs, memes, voice-channels, calls, boards (Kanban), playbooks, agents, dan metrics.
gifs-serverLayanan GIF dan stiker yang di-hosting sendiri, yang digunakan oleh aplikasi GIFs.
desktop-app, mobile-app, push-proxyAplikasi desktop dan mobile, serta layanan yang meneruskan notifikasi push ke ponsel.
antimatter.chatSitus web ini dan dokumentasinya.
communityIsu dan diskusi untuk setiap bagian dari Antimatter.

Sebelum Anda Memulai

  • Dapatkan server uji. Cara tercepat adalah menggunakan image Docker: lihat Menginstal Antimatter. Untuk bekerja pada Antimatter itu sendiri, lihat Membangun dari sumber.
  • Periksa apa yang diizinkan oleh server. Beberapa fitur integrasi nonaktif secara bawaan dan memerlukan admin sistem: token akses pribadi, akun bot, penggantian nama pengguna dan ikon, serta pengunggahan aplikasi. Setiap halaman menyebutkan pengaturan yang diperlukan.
  • Tahu URL situs Anda. Contoh menggunakan https://chat.example.com. Ganti dengan alamat server Anda.

Dalam panduan ini

  • API REST: autentikasi, sumber daya utama, paginasi, kesalahan, batas laju, WebSocket, pustaka klien, dan tambahan dari Antimatter.
  • Webhook: webhook masuk dan keluar, payload, lampiran, dan kartu.
  • Perintah Garis Miring: perintah kustom, permintaan dan responsnya, serta autocomplete.
  • Bot dan pesan interaktif: akun bot, tombol, menu, dan dialog.
  • Menulis aplikasi: tata letak plugin, hook server, registri aplikasi web, Fusion, pengaturan, penyimpanan, terjemahan, dan pengemasan.
  • Membangun dari sumber: server, antarmuka web, image Docker, dan aplikasi.
  • Kontribusi: masalah, pull request, gaya, terjemahan, keamanan, dan lisensi.
Pertanyaan disambut di diskusi komunitas. Laporkan bug di masalah komunitas.