Antimatter-এর ওপর নির্মাণ
এই গাইডটি ডেভেলপারদের জন্য। এতে API ব্যবহারকারী স্ক্রিপ্ট ও বট, ওয়েবহুক ও স্ল্যাশ কমান্ডের ভিত্তিতে তৈরি ইন্টিগ্রেশন, সার্ভার ও ওয়েব অ্যাপে ফিচার যোগ করার জন্য অ্যাপস (প্লাগইন), এবং Antimatter-এ কন্ট্রিবিউট করার জন্য সোর্স থেকে বিল্ড করার বিষয়গুলো আলোচিত হয়েছে।
Antimatter-কে এক্সটেন্ড করার উপায়
যে কাজটি করতে হবে, তার জন্য সবচেয়ে হালকা টুলটি বেছে নিন। প্রথম চারটির জন্য সার্ভারের সরাসরি অ্যাক্সেসের প্রয়োজন নেই; অ্যাপস সার্ভারের ভেতরে চলে।
| টুল | এটি কী করে | যে কাজের জন্য উপযোগী |
|---|---|---|
| REST API | অ্যাপস যা যা করে: ম্যাসেজ, চ্যানেল, মানুষ, ফাইল, সেটিংস। একটি WebSocket ঘটনা ঘটার সাথে সাথে ইভেন্ট পাঠায়। | স্ক্রিপ্ট, অন্য সিস্টেমের সাথে সিঙ্করনাইজেশন, কাস্টম ক্লায়েন্ট। |
| Incoming webhooks | একটি গোপন URL যা JSON পাঠালে চ্যানেলে একটি ম্যাসেজ পোস্ট করে। | অ্যালার্ট, CI রেজাল্ট, মনিটরিং, অন্য টুল থেকে নোটিফিকেশন। |
| Outgoing webhooks | Antimatter আপনার URL-এ কল পাঠায় যখন একটি পাবলিক চ্যানেলে কোনো মেনশন-সহ বার্তা শুরু হয়, অথবা কেউ কোনো বার্তার মেনু থেকে আপনার অ্যাকশনটি বেছে নেয়, এবং আপনার উত্তরটি পোস্ট করে। | সহজ চ্যাট-চালিত অটোমেশন, অন্য কোনো টুলে বার্তা পাঠানোর জন্য। |
| Slash commands | ব্যবহারকারীরা /something লেখেন; Antimatter আপনার URL-এ কল করে এবং আপনার উত্তর তাদেরকে বা চ্যানেলে দেখায়। | লুকআপ, চ্যাট থেকে শুরু করা অ্যাকশন। |
| Bots | প্রোগ্রামের জন্য তৈরি অ্যাকাউন্ট, নিজস্ব টোকেন, একটি বট ট্যাগ (এআই এজেন্টের জন্য এজেন্ট), এবং ইন্টারঅ্যাকটিভ মেসেজ ও ডায়ালগ। | সহায়ক, নোটিফায়ার, আপনি যেসব এআই এজেন্ট নিজে পরিচালনা করেন, এবং মানুষের সাথে কথা বলে এমন যেকোনো কিছু। |
| Apps (plugins) | সার্ভারের (Go) এবং ওয়েব অ্যাপের (React) ভেতরে চলা কোড: প্রতিটি ম্যাসেজে হুক, নতুন মেনু, প্যানেল, ম্যাসেজ টাইপ, পেজ। | ফিচার: পোল, নোট, ক্যালেন্ডার, ইউজার ইন্টারফেসের প্রয়োজন এমন ইন্টিগ্রেশন। |
ইন্টারফেসে, মানুষ প্লাগইনকে "অ্যাপস" বলে। যেখানে দুটি শব্দই সাহায্য করে, এই গাইডে "অ্যাপস (প্লাগইন)" বলা হয়েছে, কারণ কোড, API এবং কনফিগারেশন এখনও "প্লাগইন" বলে থাকে।
Mattermost-এর সাথে সামঞ্জস্যতা
Antimatter হলো Mattermost-এর একটি ফর্ক। Mattermost সার্ভারের সাথে যা কাজ করে, তার বেশিরভাগই Antimatter-এর সাথেও কাজ করে।
কী কী একই
- REST API
/api/v4এর নিচে, এর অথেনটিকেশন, এর WebSocket এবং এর এরর ফরম্যাট। সার্ভার ভার্সন12.0.0রিপোর্ট করে, তাই সার্ভারের ভার্সন চেক করা ক্লায়েন্ট এবং অ্যাপস একটি সাম্প্রতিক Mattermost দেখতে পায়। - ওয়েবহুক এবং স্লাশ কমান্ড, যার মধ্যে রয়েছে Slack-সম্পাদক পেলোড।
- সার্ভার প্লাগইন API এবং হুকস: Antimatter এগুলোকে অপরিবর্তিত রাখে। সার্ভার কোড একই Go মডিউলের (
github.com/mattermost/mattermost/server/public) বিরুদ্ধে তৈরি হয়। Antimatter শুধুমাত্র তার AI সার্ভিসের জন্য (দেখুন AI সার্ভিস) কিছু মেথড যোগ করে। - ওয়েব অ্যাপ প্লাগইন রেজিস্ট্রি: Mattermost-এর রেজিস্ট্রির প্রতিটি
register…পদ্ধতি Antimatter-এর দুটি ওয়েব ইন্টারফেসের মধ্যেই উপস্থিত। - ক্লায়েন্ট লাইব্রেরি: Go ক্লায়েন্ট
model.Client4এবং TypeScript ক্লায়েন্ট@mattermost/client(দেখুন ক্লায়েন্ট লাইব্রেরি)। - প্লাগইন বান্ডেল: একটি
.tar.gzফাইল, যার মধ্যেplugin.jsonম্যানিফেস্ট রয়েছে। Mattermost-এর কী দিয়ে স্বাক্ষরিত প্লাগইন ইনস্টল হয়, Antimatter-এর কী দিয়ে স্বাক্ষরিত প্লাগইনও।
কী কী আলাদা
- দুটি ওয়েব ইন্টারফেস। নতুন ইন্টারফেস Fusion হলো ডিফল্ট; ক্লাসিক Mattermost ইন্টারফেস এখনও উপলব্ধ। Fusion বেশিরভাগ প্লাগইন কম্পোনেন্ট রেন্ডার করে, তবে কিছুকে ভিন্নভাবে স্থাপন করে এবং কিছু বাদ দেয়। একটি অ্যাপ কোন ইন্টারফেস চলছে তা জানতে পারে। দেখুন Fusion ইন্টারফেস সমর্থন।
- অতিরিক্ত API। Antimatter তার নিজস্ব ফিচারগুলোর জন্য এন্ডপয়েন্ট যোগ করে: কমিউনিটি অ্যাট্রিবিউটস, টাইমআউট, উপরের বার্তা, বার্তা রিকোয়েস্ট, চ্যানেল এবং ক্যাটাগরি ওভাররাইড, চ্যানেল এক্সপোর্ট, থ্রিড সরানো, মডেল কানেকশন, বার্তা অ্যাকশন, এবং কমিউনিটিতে নতুন ফিল্ড। দেখুন Antimatter API-তে যা যোগ করে।
- অতিরিক্ত ম্যাসেজ ফিচার। ম্যাসেজ আটাচমেন্ট পাইপলাইন স্টেজ এবং একটি ছোট চার্ট দেখাতে পারে; পোস্টগুলি ইনলাইন রিপ্লাই বা স্পিলার হতে পারে।
- অ্যাপসের জন্য অতিরিক্ত ওয়েব অ্যাপ হুকস: কম্পোজারের "+" মেনু আইটেম, ইমোজি পিকার ট্যাব, চ্যানেল ভিউতে একটি প্যানেল, সাইডবার চ্যানেলের নিচে একটি ফুটার, ইন্টিগ্রেশন পেজে একটি এন্ট্রি, ইমোজি পিকারের অ্যাড এবং ম্যানেজ ভিউ, এবং একটি সাইড প্যানেল যা নতুন উইন্ডোতে যেখানে ছিল সেখানেই আবার খোলে। দেখুন শুধুমাত্র Antimatter-এর হুকস।
- লাইসেন্স নেই। লাইসেন্স কী ছাড়াই প্রতিটি ফিচার উপলব্ধ। লাইসেন্স, ট্রায়াল এবং এন্টারপ্রাইজ আপগ্রেড এন্ডপয়েন্টগুলি সরিয়ে ফেলা হয়েছে;
GET /api/v4/license/clientসেই ক্লায়েন্টগুলির জন্য রয়ে গেছে যা জিজ্ঞাসা করে। Mattermost-এর পেইড এডিশনের জন্য তৈরি কিছু অ্যাপ নিজেই লাইসেন্স পরীক্ষা করে এবং চলা থেকে বিরত থাকে। - নাম। ইন্টারফেসে টিমগুলিকে কমিউনিটি বলা হয়, কিন্তু API এবং কোড এখনও
teamবলে। এনভায়রনমেন্ট ভেরিয়েবলগুলিAM_প্রিফিক্স ব্যবহার করে, কমান্ড-লাইন টুলটিamctlএবং সার্ভার বাইনারিটিantimatter।
কোড কোথায় থাকে
সবকিছু ওপেন সোর্স, GitHub-এর AntimatterChat অর্গানাইজেশনে। প্রতিটি রিপোজিটরি তার 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 | GIFs অ্যাপ ব্যবহার করা সেলফ-হোস্টেড GIF এবং স্টিকার সার্ভিস। |
| desktop-app, mobile-app, push-proxy | ডেস্কটপ এবং মোবাইল অ্যাপস, এবং ফোনে পুশ নোটিফিকেশন রিলে করা সার্ভিস। |
| antimatter.chat | এই ওয়েবসাইট এবং এর ডকুমেন্টেশন। |
| community | Antimatter-এর প্রতিটি অংশের জন্য ইস্যু এবং আলোচনা। |
শুরু করার আগে
- একটি টেস্ট সার্ভার নিন। সবচেয়ে দ্রুত উপায় হলো Docker ইমেজ: Antimatter ইনস্টল করা দেখুন। Antimatter-এর নিজের ওপর কাজ করতে চাইলে, সোর্স থেকে বিল্ড করা দেখুন।
- সার্ভার কী অনুমতি দেয় তা দেখুন। বেশ কিছু ইন্টিগ্রেশন ফিচার ডিফল্টভাবে বন্ধ থাকে এবং এর জন্য সিস্টেম অ্যাডমিন প্রয়োজন: পার্সোনাল অ্যাক্সেস টোকেন, বট অ্যাকাউন্ট, ইউজারনেম ও আইকন ওভাররাইড, এবং অ্যাপ আপলোড। প্রতিটি পেজে কোন সেটিংস প্রয়োজন তা উল্লেখ করা আছে।
- আপনার সাইটের URL জানুন। উদাহরণগুলোতে
https://chat.example.comব্যবহার করা হয়েছে। এটি আপনার সার্ভারের ঠিকানা দিয়ে প্রতিস্থাপন করুন।
এই গাইডে
- REST API: অথেনটিকেশন, মূল রিসোর্স, পেজিনেশন, এরর, রেট লিমিট, WebSocket, ক্লায়েন্ট লাইব্রেরি এবং Antimatter-এর অতিরিক্ত বৈশিষ্ট্য।
- ওয়েবহুক: ইনকামিং ও আউটগোয়িং ওয়েবহুক, পেইলোড, আটাচমেন্ট এবং কার্ড।
- স্লাশ কমান্ড: কাস্টম কমান্ড, তাদের রিকোয়েস্ট ও রেসপন্স, অটোকমপ্লিট।
- বট এবং ইন্টারঅ্যাকটিভ মেসেজ: বট অ্যাকাউন্ট, এক্সটার্নাল এজেন্ট, বাটন, মেনু এবং ডায়ালগ।
- অ্যাপ লেখা: প্লাগইন লেআউট, সার্ভার হুক, ওয়েব অ্যাপ রেজিস্ট্রি, Fusion, সেটিংস, স্টোরেজ, ট্রান্সলেসন এবং প্যাকেজিং।
- সোর্স থেকে বিল্ড করা: সার্ভার, ওয়েব ইন্টারফেস, Docker ইমেজ এবং অ্যাপস।
- কন্ট্রিবিউটিং: ইস্যু, পুল রিকোয়েস্ট, স্টাইল, ট্রান্সলেসন, সিকিউরিটি এবং লাইসেন্স।