מערכת הרישוי
המערכת כוללת מנגנון רישוי מתקדם (src/license) המאפשר ניהול הרשאות ברמת הארגון (Organization) או השרת.
ארכיטקטורה
הרישיון הוא קובץ JSON חתום קריפטוגרפית (HMAC-SHA256) המונע זיופים.
הקובץ נשמר ב-server-nest/config/license.json או נטען ממשתנה סביבה BT_MANAGEMENT_LICENSE.
סוגי רישיונות (Tiers)
- Trial: מוגבל ל-30 יום, 5 מכשירים.
- Basic: פיצ'רים בסיסיים בלבד.
- Professional: כולל אנליטיקה מתקדמת והתראות חכמות.
- Enterprise: SSO, Audit Logs, וללא הגבלת מכשירים.
מבנה הרישיון
interface LicenseInfo {
id: string; // מזהה ייחודי
type: 'trial' | 'basic' | ...;
maxDevices: number; // אכיפת כמות מכשירים
maxUsers: number;
features: string[]; // רשימת פיצ'רים מאופשרים
signature: string; // חתימת האימות
}
אכיפה (Enforcement)
- בדיקה עיתית: השרת בודק כל שעה (
@Interval) את תוקף הרישיון והחריגה מהמכסות. - Feature Flags: השירות
LicenseServiceחושף מתודהisFeatureEnabled('smart_alerts')שמשמשת את הקוד העסקי לבדיקת הרשאות. - Grace Period: במקרה של ניתוק רשת, המערכת תמשיך לעבוד עם הרישיון האחרון שנטען ("Cached License").
יצירת רישיון
כיום היצירה מתבצעת ידנית דרך CLI או פונקציית createTrialLicense המשמשת לשימוש ראשוני.
ה-Secret Key לחתימה נמצא ב-ENV LICENSE_SECRET_KEY.