arblant
BlueKnight-Panel-Marvel / CHANGELOG-v1.0.md
CHANGELOG-v1.0.md89 lines · 4.1 KB
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89
# Marvel Panel v1.0 — Changelog

Base: BlueKnightNet/Blue-Knight-Panel v5.2.7 → Final: v1.0

---

## English

### Phase 1: BlueKnight → Marvel (Claude)

**Security**
- Login brute-force protection: 8 failed attempts → HTTP 429 (new: `bkLoginBlocked`, `bkLoginFail`, `bkLoginIp`)
- `PANEL_KEY`: optional access key for the panel
- Decoy 404 page for unknown paths (hides the panel)
- `Sec-Fetch-Site` check on setup (CSRF protection)
- Security headers (`X-Robots-Tag`, `Permissions-Policy`) + `robots.txt`
- Silent 500 errors (no stack traces leaked)
- Removed AAAA "no data" message from DoH responses

**Removed**
- Self-update mechanism (`compareVersions`, `updateTarget`, `staleSettings`) — deleted entirely

**Network**
- IPv6 fully disabled (new: `bkV4Only`, `bkIsV6Entry`, `bkV6Host`, `bkV6Url`, `bkOvpnV4`)

**UI**
- 3 styles: Aurora Glass (default), Command Deck, Floating Dock
- Personalization Studio + `Ctrl+K` command palette
- Local QR code generation (`bkQrSvg`) — no external service
- Setup help page (`bkSetupHelpPage`)

### Phase 2: Marvel → v1.0 (Muse)

**New features (all natively integrated into the panel's own tab system)**
- 👥 **User Management** — per-user VLESS with quota (GB) and expiry (days); actions: show link, subscription URL, delete
- 📈 **Traffic Dashboard** — total users/quota/used, per-user progress bars (🟢/🟡/🔴)
- ⚡ **ISP Preset Builder** — Irancell → Fragment+Fingerprint (needs clean IP); MCI → ECH (no clean IP needed)
- 💾 **Backup & Restore** — export/import all panel data as JSON
- 🔗 **Per-user subscriptions** — `/sub/u/:uuid` returns the user's VLESS config; 403 if revoked/expired/over-quota

**Backend**
- New `gwApi` function + `/gw-admin/api/*` routes (Bearer token auth)
- KV schema: `gw:user:<uuid>` → { uuid, name, quotaBytes, usedTotal, expiresAt, revoked, createdAt }

**Removed during development**
- Proxy IP probe tab (added, then removed per user request — no trace in v1.0)

---

## فارسی

### فاز ۱: بلونایت → مارول (Claude)

**امنیت**
- محافظت لاگین: ۸ بار اشتباه → خطای 429
- کلید `PANEL_KEY`: کلید دسترسی اختیاری برای پنل
- صفحه‌ی ۴۰۴ جعلی برای مسیرهای ناشناس (مخفی کردن پنل)
- بررسی `Sec-Fetch-Site` موقع setup (محافظت CSRF)
- هدرهای امنیتی + `robots.txt`
- خطاهای ۵۰۰ بی‌صدا (بدون لو رفتن جزئیات)
- حذف پیام AAAA از پاسخ‌های DoH

**حذف شده**
- مکانیزم self-update — کاملاً پاک شد

**شبکه**
- غیرفعال‌سازی کامل IPv6

**رابط کاربری**
- ۳ استایل: Aurora Glass (پیش‌فرض)، Command Deck، Floating Dock
- استودیوی شخصی‌سازی + پالت فرمان `Ctrl+K`
- تولید QR محلی — بدون سرویس خارجی
- صفحه‌ی راهنمای setup

### فاز ۲: مارول → v1.0 (Muse)

**قابلیت‌های جدید** (همه به‌صورت native توی سیستم تب خود پنل)
- 👥 **مدیریت یوزر** — VLESS اختصاصی با حجم و انقضا؛ عملیات: نمایش لینک، لینک سابسکریپشن، حذف
- 📈 **داشبورد ترافیک** — مجموع یوزرها/حجم/مصرف، نوار پیشرفت هر یوزر (🟢/🟡/🔴)
- ⚡ **ISP Preset Builder** — ایرانسل → Fragment+Fingerprint (IP تمیز لازم داره)؛ همراه اول → ECH (IP لازم نداره)
- 💾 **بکاپ و ریستور** — خروجی/ورودی همه‌ی داده‌ها به‌صورت JSON
- 🔗 **سابسکریپشن per-user** — مسیر `/sub/u/:uuid` کانفیگ یوزر رو برمی‌گردونه؛ 403 اگه حذف/منقضی/تمام‌شده باشه

**بک‌اند**
- تابع `gwApi` + مسیرهای `/gw-admin/api/*` (احراز هویت با توکن)
- ساختار KV: `gw:user:<uuid>`

**حذف شده حین توسعه**
- تب Proxy IP probe (اضافه شد، بعد به خواست کاربر پاک شد — اثری توی v1.0 نیست)