// سطح: helix-primary · سفارش 1
HelixTrack betaاجازهنامه: TBD
منبع
جایگزین آزاد برای جهان آزاد به جای JIRA
HelixTrack یک جایگزین جامع، مدرن و متنباز برای JIRA (و از طریق افزونه Documents، برای Confluence) است — یک سیستم مدیریت پروژه و ردیابی مسائل چندپلتفرمی که بر پایه معماری میکروسرویسهای Go با کلاینتهای بومی برای وب، دسکتاپ و موبایل ساخته شده است.
جایگزین متنباز برای JIRA/Confluence. یک بکاند میکروسرویس Go («هسته HelixTrack») یک API یکپارچه REST API برای مدیریت پروژه و ردیابی مسائل به همراه یک فضای کاری مستندات به سبک Confluence ارائه میدهد که از طریق پروتکلهای HTTP/3 QUIC به کلاینتهای بومی وب، دسکتاپ، اندروید و iOS سرویسدهی میشود.
HelixTrack یک پلتفرم متنباز مدیریت پروژه و ردیابی مسائل است که به عنوان جایگزینی آزاد برای JIRA و Confluence طراحی شده است — جایگزینی کامل برای دو ابزاری که اکثر سازمانهای مهندسی به آنها وابستهاند، اما این بار به عنوان نرمافزاری که مالک آن هستید و میتوانید آن را در هر جایی اجرا کنید. قلب این سیستم هسته HelixTrack است؛ یک میکروسرویس REST API نوشتهشده با Go و چارچوب Gin که امکانات کاملی برای ردیابی مسائل، تختههای چابک/اسکرام، مدیریت تیم و یک موتور سلسلهمراتبی مجوزها را فراهم میکند. پیادهسازی این موتور قابل تعویض است؛ میتوان از یک موتور محلی درونپردازشی یا یک سرویس مبتنی بر HTTP استفاده کرد تا همان مدل مجوزدهی از یک لپتاپ تا یک کلاستر توزیعشده بدون نیاز به تغییر کد برنامه مقیاسپذیر باشد.
برخلاف سیستمهایی که APIهای REST خود را در دهها مسیر مختلف پخش میکنند، هسته HelixTrack همه چیز را از طریق یک نقطه پایانی واحد /do با مسیریابی بر اساس اکشن هدایت میکند که از یک قالب ثابت درخواست/پاسخ (action/jwt/object/data ورودی، errorCode/errorMessage/data خروجی) استفاده میکند. بدین ترتیب، همه کلاینتها از یک قرارداد کوچک و یکسان پیروی میکنند و افزودن قابلیت جدید تنها به معنای افزودن یک اکشن است، نه یک URL جدید که نیاز به مستندسازی، امنسازی و نسخهبندی داشته باشد.
هسته HelixTrack با سرویسهای جداگانه احراز هویت، مجوزها و بومیسازی که از طریق پروتکلهای HTTP/3 QUIC ارتباط برقرار میکنند، یکپارچه شده است. این سرویسها میتوانند روی ماشینها یا کلاسترهای جداگانه اجرا شوند یا در پیکربندیهای تستی به طور کامل غیرفعال شوند. دادهها در SQLite برای توسعه بدون نیاز به تنظیمات اولیه و در PostgreSQL برای محیط عملیاتی ذخیره میشوند و به طور پیشفرض با SQLCipher (AES-256) در حالت استراحت رمزنگاری میشوند تا دادههای حساس پروژهها به جای اینکه بعداً به فکر امنیت آنها باشیم، از ابتدا محافظت شوند.
افزونه Documents V2 این سیستم ردیابی را به یک پلتفرم دانش کامل تبدیل میکند: یک فضای کاری به سبک Confluence با فضاها، صفحات، کنترل نسخه، قالبها، همکاری همزمان WebSocket و تحلیلها — ویکی و ردیاب مسائل بالاخره در یک بکاند واحد جای میگیرند، به جای اینکه دو محصول جداگانه به هم وصله شوند.
در اطراف هسته HelixTrack چندین برنامه کلاینت وجود دارد: یک کلاینت وب Angular، یک کلاینت دسکتاپ Tauri + Angular، برنامههای بومی اندروید (Kotlin) و iOS (Swift)، به علاوه کلاینتهایی برای HarmonyOS و Aurora OS و حتی یک محافظ صفحه نمایش — همه اینها با یک بکاند واحد ارتباط برقرار میکنند و به طور خودکار از طریق پخش UDP در شبکههای محلی سرور خود را پیدا میکنند، به طوری که یک کلاینت جدید بدون نیاز به پیکربندی دستی، سرور را شناسایی میکند.
برنامههای کلاینتی به عنوان مخازن جداگانه و خصوصی نگهداری میشوند و در اینجا تنها در سطح محصول معرفی شدهاند.
محتوا
برای آنکه به تیمها جایگزینی واقعاً باز و خودمیزبانیشده برای مجموعه JIRA + کانفلوئنس بدهیم — «برای دنیای آزاد» — بدون وابستگی به فروشنده، با ترکیب ردیابی سطح سازمانی، اسناد و همکاری تحت یک مجوز متنباز.
این پلتفرم دو محصول تجاری سنگین — ردیابی مسائل و مجموعه ویکی/اسناد — را در یک بستر باز، پرسرعت و خودمیزبانیشده ادغام میکند و آن را با چیزی همراه میسازد که رقبا هرگز ارائه نکردهاند: کلاینتهای *بومی* واقعی چندپلتفرمی (وب، دسکتاپ، اندروید، آیاواس، بهعلاوه هارمونیاواس و آورورا اواس) که همگی توسط یک قرارداد بکاند واحد هدایت میشوند. دستاورد اصلی، مالکیت بدون مصالحه است. طراحی HTTP/3 در همهجا، معماری کاملاً جداشده میکروسرویسها و رمزگذاری SQLCipher AES-256 در حالت سکون، عملکرد و امنیت را که معمولاً مختص سرویسهای ابری انحصاری است، به سیستمی میآورد که خودتان میزبانیاش میکنید — بدون مجوزهای کاربری، بدون وابستگی به فروشنده، بدون خروج داده از زیرساخت شما. تیمها تجربه JIRA بهعلاوه کانفلوئنس را که از قبل میشناسند، روی سختافزار خودشان و تحت یک مجوز متنباز به دست میآورند.
- دستور یکپارچه مبتنی بر عمل
/doAPI — یک نقطه پایانی، یک بسته، مسیریابی بر اساس عمل. قابلیتهای جدید بهصورت اعمال جدید اضافه میشوند، نه آدرسهای جدید، که سطح حمله، کد کلاینت و بار مستندسازی را در یک قرارداد واحد که همه پلتفرمها به اشتراک میگذارند، کاهش میدهد. - HTTP/3 QUIC بهعنوان انتقال *پیشفرض* بین سرویسها — شبکهسازی مدرن با تأخیر کم و مقاوم در برابر قطع اتصال از روز اول، نه بهعنوان افزونهای که بعدها اضافه شده باشد.
- موتور مجوزدهی قابل تعویض بین پیادهسازی محلی درونپردازشی و سرویس پشتیبان HTTP، در کنار سرویسهای اختیاری و مستقل احراز هویت، مجوزدهی و بومیسازی — مدل مجوزدهی یکسان چه یک پردازش اجرا کنید چه یک کلاستر.
- جداسازی دادههای چندفضایی از طریق پرچم
--space-root: هر پروژه پایگاه داده و مخزن داراییهای جداگانه خود را دارد، بنابراین مستأجران و پروژهها در مرز ذخیرهسازی از هم جدا میشوند، نه با فیلترهای پرسوجو. - رمزگذاری SQLCipher AES-256 در حالت سکون — دادههای حساس پروژه بهطور پیشفرض و شفاف روی دیسک محافظت میشوند.
- کشف خودکار کلاینت به سرور از طریق پخش UDP در شبکههای محلی — کلاینت بدون هیچ پیکربندی دستی، هسته را پیدا میکند.
- اسناد نسخه ۲، جایگزینی واقعی برای «کانفلوئنس»، با ویرایش موازی مبتنی بر قفل خوشبینانه، تشخیص تداخل و تاریخچه کامل تغییرات — اسناد واقعی مشارکتی که پشت همان بکاند ردیاب قرار دارند.
- شش پلتفرم کلاینت، یک بکاند، بدون انحراف قرارداد. نگهداری از کلاینتهای وب/Angular، دسکتاپ/Tauri، اندروید/Kotlin، آیاواس/Swift، هارمونیاواس و آورورا معمولاً به معنای شش یکپارچهسازی API واگرا است که بهمرور از همگام خارج میشوند. ما این ریسک را با تبدیل دستور مسیریابیشده بر اساس عمل
/doAPI و بسته ثابت آن به *تنها* قرارداد — که همه کلاینتها بهطور یکسان آن را هدف قرار میدهند — کاهش دادیم و کشف سرویس مبتنی بر پخش UDP را در لایه بالایی قرار دادیم تا کلاینتها بدون نیاز به پیکربندی دستی، هسته را در شبکه پیدا کنند. - جداسازی سرویسها بدون پرداخت هزینه تأخیر. تقسیم سرویسهای احراز هویت، مجوزدهی و بومیسازی به سرویسهای مستقل معمولاً به معنای یک پرش شبکهای اضافی به ازای هر فراخوانی است. ما HTTP/3 QUIC را در تمام فراخوانیهای بینسرویس به کار گرفتیم تا این پرشها سریع و مقاوم در برابر قطع اتصال باقی بمانند و هر سرویس را بهطور مستقل قابل اجرا ساختیم — حتی بهطور کامل در پیکربندیهای آزمایشی غیرفعال شوند — تا جداسازی انتخابی در استقرار باشد، نه هزینهای ثابت.
- همکاری در سطح کانفلوئنس بدون از دست رفتن نوشتهها. ویرایش همزمان چندنویسنده مستعد تداخل در نوشتار است. اسناد نسخه ۲ این مشکل را با فضاها/صفحات/نسخهبندی تحت قفل خوشبینانه بهعلاوه تشخیص صریح تداخل، تاریخچه کامل تغییرات برای بازگشت و همگامسازی WebSocket بلادرنگ حل میکند — همکاریای که بهجای نادیده گرفتن ویرایشها، سازگار باقی میماند.
- رمزگذاری در حالت سکون بدون قربانی کردن توان عملیاتی. SQLCipher AES-256 از دادهها روی دیسک محافظت میکند اما سربار هر پرسوجو را افزایش میدهد؛ ما آن را با کش چندلایه (LRU در حافظه در مقابل Redis در سرویس بومیسازی) جبران کردیم تا مسیرهای داغ مانند جستجوهای چندزبانه سریع باقی بمانند در حالی که دادهها رمزگذاریشده هستند.
محتوا
- Go + Gin — به دلیل توان عملیاتی بالا و تأخیر کم در سرویسهای HTTP با قابلیت استقرار در یک باینری واحد انتخاب شده است؛ شامل هسته REST API، میانافزار JWT/CORS و مسیریاب مبتنی بر اکشن
/doاست که کل سیستم را پوشش میدهد. - HTTP/3 QUIC — به عنوان لایه انتقال بین هسته و سرویسهای احراز هویت/مجوزها/بومیسازی انتخاب شده است، زیرا طراحی مالتیپلکس و مهاجرت اتصال QUIC، تأخیر انتهایی را کاهش داده و در برابر اتصالات ناپایدار مقاوم است، جایی که TCP دچار وقفه میشود.
- PostgreSQL (محیط عملیاتی) / SQLite (محیط توسعه) — یک مدل رابطهای واحد که از طرحواره بزرگ ردیابی و اسناد در هر دو موتور پشتیبانی میکند: SQLite توسعه محلی را بدون نیاز به تنظیمات اضافی و مبتنی بر فایل ممکن میسازد، در حالی که در محیط عملیاتی، پایگاه داده Postgres با پروفایل compose اختصاصی
productionمقیاسپذیری را بر عهده میگیرد. - SQLCipher (AES-256) — برای رمزنگاری شفاف در سطح پایگاه داده و در حالت استراحت انتخاب شده است تا حفاظت از دادههای حساس پروژه نیازی به رمزنگاری در لایه برنامه نداشته باشد و تغییری در نحوه نوشتن کوئریها ایجاد نکند.
- Redis — به عنوان لایه کش مشترک در پشت یک حافظه نهان LRU درونحافظهای در سرویس بومیسازی انتخاب شده است تا کش دو لایهای فراهم کند که حتی با وجود سربار رمزنگاری، جستجوهای چندزبانه داغ را سریع نگه دارد.
- Uber Zap + Lumberjack — برای ثبت لاگ ساختاریافته و کمحافظه با قابلیت چرخش خودکار انتخاب شده است تا هسته در محیط عملیاتی قابل رصد باقی بماند بدون اینکه حجم لاگها به صورت نامحدود رشد کند.
- golang-jwt / JWT — به عنوان مکانیزم احراز هویت بدون حالت انتخاب شده است؛ توکن امضاشده در فیلد
jwtهر پاکت/doقرار میگیرد تا احراز هویت در تمام کلاینتها یکسان باشد. - Angular ۱۹ (+ Material, RxJS) — برای ساخت یک کلاینت مرورگر واکنشی و مبتنی بر کامپوننت با سیستم طراحی متریال پیشرفته انتخاب شده است.
- Tauri ۲.۰ + Rust + Angular — برای ارائه یک پوسته دسکتاپ بومی با ردپای کوچک انتخاب شده است که با استفاده مجدد از رابط کاربری Angular درون یک وبویو مبتنی بر Rust، نیازی به بستهبندی یک مرورگر کامل ندارد.
- Kotlin (اندروید) / Swift + SwiftUI (iOS) — انتخاب شده است تا کاربران موبایل به جای یک وبویو بستهبندیشده، کلاینتهای بومی و مطابق با استانداردهای پلتفرم خود را دریافت کنند.
- Docker / Docker Compose (سازگار با Podman) — برای استقرار قابل تکرار و کانتینریشده با بررسیهای
/healthانتخاب شده است و سازگاری با Podman تضمین میکند که نیازی به دیمون یا فروشنده خاصی نیست. - Testify (Go)؛ Cypress/Playwright/Karma+Jasmine (کلاینتها) — برای تست خودکار لایهای انتخاب شده است که قراردادهای بکاند و رابطهای کاربری کلاینتها را به صورت مستقل پوشش میدهد و با معماری تکبکاند/چندکلاینت همخوانی دارد.
- وضعیت: بتا. هسته HelixTrack یک میکروسرویس REST API فعال است؛ افزونه اسناد نسخه ۲ تقریباً ۹۵٪ تکمیل شده و یک مشکل شناختهشده در نگاشت فیلدهای پایگاه داده دارد، بنابراین هنوز به عنوان نسخه نهایی ارائه نشده است.
- مجوز: نامشخص. فایل
CLAUDE.mdمجوز MIT را اعلام کرده، اما فایلcore/LICENSEرسمی، مجوز Apache ۲.۰ را دارد — این تناقض باید پیش از اعلام قطعی مجوز برطرف شود. - ارقام عملکردی ذکرشده در فایل README پروژه (مانند بیش از ۵۰٬۰۰۰ درخواست در ثانیه، زمان پاسخدهی زیر میلیثانیه) اهداف طراحی/بازاریابی هستند و نه معیارهای مستقل منتشرشده، بنابراین در ادعاهای فوق نیامدهاند.
- برنامههای کلاینت (وب، دسکتاپ، اندروید، iOS، Aurora، HarmonyOS) در مخازن خصوصی قرار دارند و تنها در سطح محصول توصیف شدهاند.
محتوا
سطح اولویت: Helix-اصلی و محصول شاخص خط تولید Helix-Track — بالاتر از هر پروژه Server Factory قرار میگیرد.