3x-ui/internal/database/model
Rouzbeh† 694ad6deae
feat(sub): add per-client subscription HWID limits (#5802)
* feat(sub): add per-client subscription HWID limits

* fix(sub): address HWID review on shared subId and bulk create

* fix(sub): store HWID devices by sub_id and drop anchor client workaround

* fix(sub): restore UA auto-detect and HTML page routing in subs()

The cherry-pick of the HWID gate onto main's refactored SUBController
had dropped main's UA-based format auto-detection and sub-page handling
from subs(). Restore those branches, slotting enforceHwid after the
HTML page and before format detection so the gate only applies to
machine-readable subscription bodies.

Also adapt tests to main's options-struct constructor and to the
ClientService.Update signature extended with limitHwid.

* fix(frontend): drop axios from HttpUtil.delete

The bulk-delete rework's committed version still referenced axios,
which this file no longer imports, breaking typecheck in CI. Use the
httpRequest wrapper like the other verbs.

---------

Co-authored-by: Sanaei <ho3ein.sanaei@gmail.com>
2026-08-15 16:50:20 +02:00
..
client_global_traffic.go fix: resolve a batch of open bug-tagged issues (traffic accounting, share strategy, sub address, CPU) (#5477) 2026-06-22 00:22:28 +02:00
host_test.go feat(hosts): managed Hosts for per-host subscription link overrides (#5409) 2026-06-17 12:06:55 +02:00
hysteria_version_test.go fix(xray): reject configs xray-core refuses, and check the fixtures against it 2026-07-28 14:43:55 +02:00
model.go feat(sub): add per-client subscription HWID limits (#5802) 2026-08-15 16:50:20 +02:00
model_mtproto_test.go refactor(mtproto): manage ad-tags per client only 2026-07-07 12:19:26 +02:00
model_shadowsocks_removed_test.go feat(xray): update xray-core to v26.7.11 and adapt panel 2026-07-12 00:30:47 +02:00
model_test.go fix(inbound): strip XHTTP client-only fields from xray config, keep for subscriptions (#5349) 2026-06-15 16:35:43 +02:00
model_wireguard_peers_test.go fix(wireguard): build peers in GenXrayInboundConfig so node reconcile keeps clients (#5684) 2026-07-09 00:52:03 +02:00
model_wireguard_test.go feat(wireguard): multi-client support 2026-06-28 00:44:38 +02:00
node_client_ip.go feat(nodes): per-node client IP attribution for IP-limit 2026-06-15 23:50:05 +02:00
node_client_traffic.go refactor: focused service files, leaf subpackages, and an internal/ layout (#5167) 2026-06-10 15:19:22 +02:00