3x-ui/internal/web/service
libmur-dev a8d0700bf2
Some checks failed
CI / go-test (push) Has been cancelled
CI / postgres-durable-first (push) Has been cancelled
CI / codegen (push) Has been cancelled
CI / govulncheck (push) Has been cancelled
CI / race (push) Has been cancelled
CI / node-e2e (push) Has been cancelled
CI / fuzz-smoke (push) Has been cancelled
CI / golangci (push) Has been cancelled
CI / frontend (push) Has been cancelled
CodeQL Advanced / Analyze (go) (push) Has been cancelled
CodeQL Advanced / Analyze (actions) (push) Has been cancelled
CodeQL Advanced / Analyze (javascript-typescript) (push) Has been cancelled
Docs CI / build (push) Has been cancelled
Docs Deploy (GitHub Pages) / build (push) Has been cancelled
Release 3X-UI / build (386) (push) Has been cancelled
Release 3X-UI / build (amd64) (push) Has been cancelled
Release 3X-UI / build (arm64) (push) Has been cancelled
Release 3X-UI / build (armv5) (push) Has been cancelled
Release 3X-UI / build (armv6) (push) Has been cancelled
Release 3X-UI / build (armv7) (push) Has been cancelled
Release 3X-UI / build (s390x) (push) Has been cancelled
Release 3X-UI / Build for Windows (push) Has been cancelled
Docs Deploy (GitHub Pages) / deploy (push) Has been cancelled
Release 3X-UI / Publish rolling dev release (push) Has been cancelled
fix(auth): add node-admin token scope for panel updates (#6666)
* feat(auth): add node-admin API token scope

Keep ordinary node-sync credentials unable to self-update a remote panel while allowing explicitly elevated node administrators to inherit synchronization access and invoke updatePanel.

* style(docs): format API scope table

* fix(auth): preserve mTLS node-sync semantics

Allow only an explicit node-admin bearer to elevate a verified mTLS request. Existing admin, monitor, and node-sync bearer values continue to use the historical node-sync identity on mTLS connections.

* chore(ci): rerun flaky checks

---------

Co-authored-by: libmur-dev <333915961+libmur-dev@users.noreply.github.com>
2026-10-17 23:45:26 +02:00
..
discord perf(tests): copy a migrated template DB instead of migrating per test 2026-09-27 03:04:50 +02:00
email perf(tests): copy a migrated template DB instead of migrating per test 2026-09-27 03:04:50 +02:00
integration feat(warp): register WARP over MASQUE from the WARP modal 2026-10-11 10:31:01 +02:00
outbound feat(xray): add the MASQUE protocol and transport 2026-10-11 10:28:49 +02:00
panel fix(auth): add node-admin token scope for panel updates (#6666) 2026-10-17 23:45:26 +02:00
tgbot fix(tgbot): resolve the panel egress bridge per connection 2026-10-03 01:35:13 +02:00
access_log_parse_test.go
api_scale_postgres_test.go feat(sub): add per-client subscription HWID limits (#5802) 2026-08-15 16:50:20 +02:00
backup_filename_test.go
bulk_clients_test.go perf(tests): copy a migrated template DB instead of migrating per test 2026-09-27 03:04:50 +02:00
bulk_traffic_test.go
calendar_renew.go feat(clients): add calendar weekly renewal and schedule previews (#6524) 2026-09-26 22:59:23 +02:00
calendar_renew_test.go feat(clients): renew on a calendar day instead of a rolling interval (#6239) 2026-08-18 12:46:00 +02:00
calendar_weekly_bound_test.go feat(clients): add calendar weekly renewal and schedule previews (#6524) 2026-09-26 22:59:23 +02:00
calendar_weekly_renew_test.go feat(clients): add calendar weekly renewal and schedule previews (#6524) 2026-09-26 22:59:23 +02:00
client.go feat(clients): preserve traffic counters in portable export/import (#6469) 2026-09-27 02:48:40 +02:00
client_add_dedupe_test.go
client_amneziawg.go fix(wireguard): reject allowedIPs that overlap another client's range 2026-09-27 18:18:50 +02:00
client_amneziawg_test.go feat(amneziawg): add native AmneziaWG protocol support (#6105) 2026-08-24 02:41:15 +02:00
client_apply_field_test.go perf(tests): copy a migrated template DB instead of migrating per test 2026-09-27 03:04:50 +02:00
client_attach_test.go feat(amneziawg): add native AmneziaWG protocol support (#6105) 2026-08-24 02:41:15 +02:00
client_bulk.go fix(node-sync): keep shared-email lookups on the open transaction 2026-10-11 22:05:24 +02:00
client_bulk_fanout_test.go feat(clients): support setting HWID limit and MTProto ad-tag in bulk adjust (#6399) 2026-09-10 16:24:48 +02:00
client_bulk_flow_test.go feat(clients): support setting HWID limit and MTProto ad-tag in bulk adjust (#6399) 2026-09-10 16:24:48 +02:00
client_bulk_reenable_test.go feat(clients): support setting HWID limit and MTProto ad-tag in bulk adjust (#6399) 2026-09-10 16:24:48 +02:00
client_bulk_reset_query_count_test.go perf(clients): batch the client record lookup in bulk operations 2026-09-10 21:07:49 +02:00
client_bulk_reset_reenable_test.go
client_create_fanout_test.go perf(clients): apply a multi-inbound client create concurrently 2026-09-04 01:01:20 +02:00
client_create_reuse_test.go
client_cross_inbound_race_test.go feat(amneziawg): add native AmneziaWG protocol support (#6105) 2026-08-24 02:41:15 +02:00
client_crud.go fix(inbounds): refuse 2022-blake3-chacha20-poly1305 on shadowsocks inbounds 2026-10-11 21:20:07 +02:00
client_delete_continue_test.go
client_delete_node_baseline_test.go
client_delete_node_full_test.go
client_delete_tombstone_test.go fix(clients): withdraw the delete tombstone when the email is re-created 2026-09-09 00:17:54 +02:00
client_disable_restart_test.go fix(xray): restart when a diff strands a client's live session (#6550) 2026-09-15 15:39:40 +03:00
client_edit_node_dirty_test.go fix(node): flag every hosting node before a client edit applies 2026-09-07 01:51:18 +02:00
client_effective_flow_test.go perf(tests): copy a migrated template DB instead of migrating per test 2026-09-27 03:04:50 +02:00
client_email_validation_test.go
client_external_link.go Add per-client external link controls (#5650) 2026-08-18 13:55:04 +02:00
client_external_link_test.go chore(build): bump Go toolchain to 1.27.0 2026-08-23 21:57:03 +02:00
client_flow_isolation_test.go fix(node-sync): write only changed client rows in the node traffic merge 2026-10-14 00:37:00 +02:00
client_group_bulk_test.go fix(groups): report changed bulk moves without restarting xray (#6199) 2026-08-14 19:50:06 +02:00
client_group_node_sync_test.go perf(tests): copy a migrated template DB instead of migrating per test 2026-09-27 03:04:50 +02:00
client_group_reset_test.go
client_groups.go feat(clients): preserve traffic counters in portable export/import (#6469) 2026-09-27 02:48:40 +02:00
client_hwid.go fix(hwid): serialize the device-limit write with its trim (#6591) 2026-09-26 20:30:22 +02:00
client_hwid_test.go perf(tests): copy a migrated template DB instead of migrating per test 2026-09-27 03:04:50 +02:00
client_hwid_tx_test.go perf(tests): copy a migrated template DB instead of migrating per test 2026-09-27 03:04:50 +02:00
client_identity_normalized_test.go fix(node-sync): keep shared-email lookups on the open transaction 2026-10-11 22:05:24 +02:00
client_inbound_apply.go fix(node-sync): keep shared-email lookups on the open transaction 2026-10-11 22:05:24 +02:00
client_inbound_apply_test.go feat(amneziawg): add native AmneziaWG protocol support (#6105) 2026-08-24 02:41:15 +02:00
client_ips_prune_test.go fix(job): expire stored client IPs of offline clients 2026-08-24 13:27:40 +02:00
client_link.go fix(node-sync): write only changed client rows in the node traffic merge 2026-10-14 00:37:00 +02:00
client_link_delta_test.go perf(clients): write client_inbounds deltas and check identity from the clients table 2026-08-20 04:09:57 +02:00
client_link_postgres_test.go feat(tuic): implement native in-process Go TUIC v5 server (#6577) 2026-10-03 02:56:02 +02:00
client_locks.go fix(node): stop stale expiry sync from undoing client extensions (#6228) (#6231) 2026-08-23 23:17:56 +02:00
client_locks_test.go
client_lookup.go feat(tgbot): access levels and /start account binding (#6518) 2026-09-27 13:33:29 +02:00
client_lookup_test.go
client_node_push_test.go perf(node): bound the per-client node push and fan out the traffic reset 2026-09-07 14:24:14 +02:00
client_paging.go Reformat clientSearchCols slice literal 2026-10-03 01:39:07 +02:00
client_paging_test.go Fix clients group filter and search for non-ASCII capitals (#6685) 2026-10-03 01:22:28 +02:00
client_portable.go feat(clients): preserve traffic counters in portable export/import (#6469) 2026-09-27 02:48:40 +02:00
client_portable_test.go feat(clients): preserve traffic counters in portable export/import (#6469) 2026-09-27 02:48:40 +02:00
client_renewal_preview.go feat(clients): add calendar weekly renewal and schedule previews (#6524) 2026-09-26 22:59:23 +02:00
client_renewal_write_validation_test.go fix(inbounds): keep the stored client list and enable on inbound save 2026-09-28 13:23:48 +02:00
client_reverse_readd_test.go fix(clients): keep a vless reverse client's handler across a re-add (#6558) 2026-09-15 18:00:54 +03:00
client_stat_reuse_test.go feat(sub): add per-client subscription HWID limits (#5802) 2026-08-15 16:50:20 +02:00
client_sync_mtproto_test.go perf(tests): copy a migrated template DB instead of migrating per test 2026-09-27 03:04:50 +02:00
client_sync_multiprotocol_test.go perf(tests): copy a migrated template DB instead of migrating per test 2026-09-27 03:04:50 +02:00
client_sync_orphan.go
client_sync_orphan_test.go fix(node): don't delete clients when a node reports an empty snapshot (#6734) 2026-10-05 16:12:08 +02:00
client_test.go chore(build): bump Go toolchain to 1.27.0 2026-08-23 21:57:03 +02:00
client_traffic.go fix(mtproto): zero sidecar quotas only for clients whose usage was reset 2026-09-28 13:02:50 +02:00
client_traffic_cycle_test.go feat(clients): give each client its own traffic reset cycle (#6240) 2026-08-18 13:08:44 +02:00
client_traffic_reset_order_test.go fix(clients): zero traffic before re-enabling a client on reset 2026-09-28 01:59:53 +02:00
client_update_allowedips_test.go feat(amneziawg): add native AmneziaWG protocol support (#6105) 2026-08-24 02:41:15 +02:00
client_update_enable_test.go feat(sub): add per-client subscription HWID limits (#5802) 2026-08-15 16:50:20 +02:00
client_update_fanout_test.go perf(node): bound the per-client node push and fan out the traffic reset 2026-09-07 14:24:14 +02:00
client_update_keepalive_test.go feat(clients): let admins set PersistentKeepalive on tunnel clients (#6377) 2026-09-10 22:32:42 +02:00
client_update_no_inbound_test.go feat(sub): add per-client subscription HWID limits (#5802) 2026-08-15 16:50:20 +02:00
client_update_rename_test.go feat(sub): add per-client subscription HWID limits (#5802) 2026-08-15 16:50:20 +02:00
client_update_tunnel_peers_test.go fix(clients): keep per-peer keys when a client spans several tunnel inbounds 2026-09-09 00:30:02 +02:00
client_weekly_renew_crud_test.go feat(clients): add calendar weekly renewal and schedule previews (#6524) 2026-09-26 22:59:23 +02:00
client_wireguard.go fix(wireguard): reject allowedIPs that overlap another client's range 2026-09-27 18:18:50 +02:00
client_wireguard_crud_test.go
client_wireguard_test.go fix(wireguard): reject allowedIPs that overlap another client's range 2026-09-27 18:18:50 +02:00
config.json fix(xray): place the freedom domain strategy where the core reads it (#6515) 2026-09-14 12:08:38 +02:00
default_template_freedom_test.go fix(xray): place the freedom domain strategy where the core reads it (#6515) 2026-09-14 12:08:38 +02:00
del_shared_email_runtime_test.go
depleted_calendar_test.go fix: follow-ups from the post-merge reviews of #6221, #6227, #6230 and #6239 (#6250) 2026-08-18 15:24:59 +02:00
external_hwid.go fix(sub): send panel guid as X-HWID on outbound subscription fetch (#6579) 2026-09-26 21:59:29 +02:00
fallback.go
finalmask_rand_packet_test.go
geodata.go feat(xray): browse geosite/geoip categories from routing rules (#6165) 2026-08-15 17:12:59 +02:00
global_traffic_test.go fix(traffic): apply maintenance side effects only after the commit lands (#6200) 2026-08-14 19:42:09 +02:00
golden_fixtures_xray_test.go
happ.go feat(happ): generate Crypt5 subscription links locally (#6494) 2026-09-13 12:44:55 +02:00
happ_crypto.go feat(happ): generate Crypt5 subscription links locally (#6494) 2026-09-13 12:44:55 +02:00
happ_local_test.go feat(happ): generate Crypt5 subscription links locally (#6494) 2026-09-13 12:44:55 +02:00
happ_test.go perf(tests): copy a migrated template DB instead of migrating per test 2026-09-27 03:04:50 +02:00
host.go fix(finalmask): refuse a salamander password xray-core cannot open 2026-10-11 18:26:45 +02:00
host_test.go feat(hosts): add a cipher suites override and accept custom suites 2026-09-16 11:56:20 +02:00
import_host_settings_test.go fix: follow-ups from the post-merge reviews of #6221, #6227, #6230 and #6239 (#6250) 2026-08-18 15:24:59 +02:00
inbound.go fix(node): apply a pushed inbound's client changes in place instead of rebuilding it 2026-10-12 16:22:30 +02:00
inbound_amneziawg.go feat(tuic): implement native in-process Go TUIC v5 server (#6577) 2026-10-03 02:56:02 +02:00
inbound_amneziawg_relay_window_test.go fix(amneziawg): refuse a row's own relay port and keep a disabled row's slot reserved (#6544) 2026-09-15 13:31:07 +03:00
inbound_amneziawg_test.go fix(node): don't delete clients when a node reports an empty snapshot (#6734) 2026-10-05 16:12:08 +02:00
inbound_autorenew_calendar_test.go fix(clients): snap EOM 23:59:59 expiry to billing midnight without renew (#6457) 2026-09-12 11:06:47 +02:00
inbound_autorenew_globaltraffic_test.go fix(traffic): clear cross-panel rows only for clients actually renewed (#6263) 2026-08-22 23:12:33 +02:00
inbound_autorenew_maxcount_test.go feat(clients): cap how many times a client may auto-renew (#6238) 2026-08-18 11:53:11 +02:00
inbound_autorenew_shadowsocks_test.go fix(traffic): apply maintenance side effects only after the commit lands (#6200) 2026-08-14 19:42:09 +02:00
inbound_autorenew_shared_email_test.go fix(clients): sync auto-renewal across inbounds (#6339) 2026-09-02 20:39:03 +02:00
inbound_autorenew_test.go fix(traffic): apply maintenance side effects only after the commit lands (#6200) 2026-08-14 19:42:09 +02:00
inbound_autorenew_weekly_test.go feat(clients): add calendar weekly renewal and schedule previews (#6524) 2026-09-26 22:59:23 +02:00
inbound_client_ips.go fix(ip-limit): CAS-retry inbound_client_ips merges under Postgres (#6612) 2026-09-26 22:00:40 +02:00
inbound_client_ips_merge_test.go perf(tests): copy a migrated template DB instead of migrating per test 2026-09-27 03:04:50 +02:00
inbound_client_move_test.go
inbound_client_traffic_test.go feat(tuic): implement native in-process Go TUIC v5 server (#6577) 2026-10-03 02:56:02 +02:00
inbound_clients.go fix(node-sync): keep shared-email lookups on the open transaction 2026-10-11 22:05:24 +02:00
inbound_clients_stale_uuid_test.go fix(inbounds): serve fresh client UUIDs for list and allLinks (#6458) 2026-09-12 11:12:13 +02:00
inbound_clients_tuic_test.go feat(tuic): implement native in-process Go TUIC v5 server (#6577) 2026-10-03 02:56:02 +02:00
inbound_create_race_test.go fix(inbounds): close the port check-and-claim race on the serial writer (#6225) 2026-08-18 11:48:40 +02:00
inbound_disable.go fix(runtime): drop depleted clients by email, not by stale inbound_id 2026-09-28 02:23:50 +02:00
inbound_disable_flow_test.go perf(tests): copy a migrated template DB instead of migrating per test 2026-09-27 03:04:50 +02:00
inbound_durable_postgres_test.go fix(inbounds): reject missing TLS certificates before saving (#6429) 2026-09-08 18:08:24 +02:00
inbound_enable_port_test.go fix(inbounds): check ports when an inbound is enabled, not only when it is saved (#6549) 2026-09-15 15:29:32 +03:00
inbound_exclude_from_sub_test.go feat(inbound): excludeFromSub hides links without disabling (#6463) 2026-09-27 12:26:37 +02:00
inbound_fallback_runtime_test.go
inbound_finalmask_reality_test.go
inbound_finalmask_salamander_test.go fix(finalmask): refuse a salamander password xray-core cannot open 2026-10-11 18:26:45 +02:00
inbound_finalmask_xdns_test.go fix(finalmask): keep a single udphop mask last in every client finalmask 2026-10-11 18:02:12 +02:00
inbound_finalmask_xmc_test.go
inbound_flow_restore.go feat(inbound): DisableFlow — opt an inbound out of auto XTLS Vision (#5689) (#5698) 2026-08-15 23:09:16 +02:00
inbound_flow_restore_test.go perf(tests): copy a migrated template DB instead of migrating per test 2026-09-27 03:04:50 +02:00
inbound_hysteria_auth_test.go fix(inbounds): keep the stored client list and enable on inbound save 2026-09-28 13:23:48 +02:00
inbound_import_external_proxy_test.go fix(mtproto): use hosts for public share links (#6369) 2026-09-08 15:36:57 +02:00
inbound_import_legacy_fields_test.go fix(inbounds): accept v2.x client fields on inbound import 2026-09-27 18:28:07 +02:00
inbound_import_shared_clients_test.go
inbound_masque_test.go fix(clients): refuse a ":" email on a MASQUE inbound 2026-10-11 16:35:20 +02:00
inbound_migration.go fix(database): keep the legacy tag cleanup from colliding with an existing tag (#6592) 2026-09-26 20:30:25 +02:00
inbound_migration_test.go perf(tests): copy a migrated template DB instead of migrating per test 2026-09-27 03:04:50 +02:00
inbound_mtproto.go fix(traffic): make a client reset reach every counter enforcing its quota 2026-09-28 02:56:53 +02:00
inbound_mtproto_apply_test.go fix(inbounds): keep the stored client list and enable on inbound save 2026-09-28 13:23:48 +02:00
inbound_mtproto_client_test.go
inbound_mtproto_desired_test.go
inbound_mtproto_test.go
inbound_mtproto_txfail_test.go
inbound_node.go fix(node-sync): write only changed client rows in the node traffic merge 2026-10-14 00:37:00 +02:00
inbound_node_ips.go fix(job): expire stored client IPs of offline clients 2026-08-24 13:27:40 +02:00
inbound_node_ips_test.go
inbound_node_protocol_update_test.go feat(inbounds): deploy AmneziaWG, TUIC and MTProto inbounds to nodes 2026-10-03 00:26:46 +02:00
inbound_node_reconcile_test.go fix(node): import a newly selected node inbound instead of sweeping it 2026-09-13 22:44:50 +02:00
inbound_node_sidecar_test.go feat(inbounds): deploy AmneziaWG, TUIC and MTProto inbounds to nodes 2026-10-03 00:26:46 +02:00
inbound_node_sweep_log_test.go fix(node): stop stale expiry sync from undoing client extensions (#6228) (#6231) 2026-08-23 23:17:56 +02:00
inbound_options_node_address_test.go
inbound_protocol.go fix(xray): keep XDRIVE storage and Vision flow within what xray-core runs 2026-10-12 00:49:11 +02:00
inbound_protocol_masque_test.go feat(xray): add the MASQUE protocol and transport 2026-10-11 10:28:49 +02:00
inbound_protocol_test.go fix(xray): keep XDRIVE storage and Vision flow within what xray-core runs 2026-10-12 00:49:11 +02:00
inbound_runtime_depleted_filter_test.go fix(runtime): drop depleted clients by email, not by stale inbound_id 2026-09-28 02:23:50 +02:00
inbound_settings_clients.go fix(inbounds): accept v2.x client fields on inbound import 2026-09-27 18:28:07 +02:00
inbound_settings_clients_test.go
inbound_settings_commit.go fix(inbounds): keep the stored client list and enable on inbound save 2026-09-28 13:23:48 +02:00
inbound_settings_stale_write_test.go fix(clients): stop client ops from reverting a renewal committed mid-op 2026-09-28 01:59:33 +02:00
inbound_sub_sort_test.go fix(inbounds): allow negative subSortIndex for subscription order (#6465) 2026-09-12 11:14:53 +02:00
inbound_sublink.go
inbound_subsort_test.go perf(tests): copy a migrated template DB instead of migrating per test 2026-09-27 03:04:50 +02:00
inbound_tgbot_lookup_test.go perf(tests): copy a migrated template DB instead of migrating per test 2026-09-27 03:04:50 +02:00
inbound_tls_test.go fix(inbounds): reject missing TLS certificates before saving (#6429) 2026-09-08 18:08:24 +02:00
inbound_traffic.go feat(tuic): implement native in-process Go TUIC v5 server (#6577) 2026-10-03 02:56:02 +02:00
inbound_traffic_apply.go fix(traffic): make a client reset reach every counter enforcing its quota 2026-09-28 02:56:53 +02:00
inbound_traffic_global.go fix(node): push a node only the client IPs it hosts 2026-09-15 16:28:31 +02:00
inbound_traffic_reset_test.go
inbound_tuic.go feat(tuic): implement native in-process Go TUIC v5 server (#6577) 2026-10-03 02:56:02 +02:00
inbound_tuic_test.go fix(tuic): preserve IP destinations during sniffing (#6753) 2026-10-07 10:53:46 +02:00
inbound_update_hot_users_test.go fix(xray): apply shadowsocks client changes in place instead of rebuilding 2026-10-14 14:16:48 +02:00
inbound_update_stale_form_test.go fix(inbounds): keep the stored client list and enable on inbound save 2026-09-28 13:23:48 +02:00
inbound_update_tag_test.go fix(mtproto): use hosts for public share links (#6369) 2026-09-08 15:36:57 +02:00
inbound_util.go fix(service): keep chunk capacity math from overflowing 2026-10-11 22:10:46 +02:00
inbound_util_test.go fix(service): keep chunk capacity math from overflowing 2026-10-11 22:10:46 +02:00
inbound_xdrive_test.go fix(xray): keep XDRIVE storage and Vision flow within what xray-core runs 2026-10-12 00:49:11 +02:00
key_gen_parse_test.go
metric_history.go
metric_history_test.go
mtproto_fake_test.go fix(traffic): make a client reset reach every counter enforcing its quota 2026-09-28 02:56:53 +02:00
mtproto_quota_reset_test.go fix(mtproto): zero sidecar quotas only for clients whose usage was reset 2026-09-28 13:02:50 +02:00
node.go fix(xray): keep balancer overrides across routing reloads (#6779) 2026-10-12 14:59:26 +02:00
node_admin_fanout_test.go fix(node): fan out operations that call every node 2026-09-15 20:07:18 +02:00
node_bulk_dispatch_test.go feat(clients): support setting HWID limit and MTProto ad-tag in bulk adjust (#6399) 2026-09-10 16:24:48 +02:00
node_client_breakdown_test.go
node_client_expiry_sync_test.go fix(node): stop stale expiry sync from undoing client extensions (#6228) (#6231) 2026-08-23 23:17:56 +02:00
node_client_renew_sync_test.go
node_client_traffic_sum_test.go fix(node-sync): write only changed client rows in the node traffic merge 2026-10-14 00:37:00 +02:00
node_client_weekly_renew_test.go feat(clients): add calendar weekly renewal and schedule previews (#6524) 2026-09-26 22:59:23 +02:00
node_contract.go
node_credentials_writeonly_test.go
node_degraded_snapshot_test.go fix(node): don't delete clients when a node reports an empty snapshot (#6734) 2026-10-05 16:12:08 +02:00
node_delete_cleanup_test.go fix(node): release a deleted node's metric series and HTTP client 2026-09-15 20:39:32 +02:00
node_delete_orphan_test.go
node_detached_client_stats_test.go fix(node): ignore a node's stats for clients detached from the inbound 2026-10-05 20:37:35 +02:00
node_dirty_test.go fix(node): stop stale expiry sync from undoing client extensions (#6228) (#6231) 2026-08-23 23:17:56 +02:00
node_foreign_client_test.go fix(node): refuse a node's claim on another inbound's client 2026-09-03 18:06:35 +02:00
node_host_adopt_test.go fix(node): stop stale expiry sync from undoing client extensions (#6228) (#6231) 2026-08-23 23:17:56 +02:00
node_http_fake_test.go perf(node): bound the per-client node push and fan out the traffic reset 2026-09-07 14:24:14 +02:00
node_inbound_replace_test.go fix(node): keep client traffic history when a node inbound is replaced 2026-10-06 12:35:59 +02:00
node_mtls.go fix(nodes): validate every certificate in the node mTLS trust bundle (#6188) 2026-08-15 21:31:31 +02:00
node_mtls_test.go fix(nodes): apply a rotated master mTLS certificate without restarting the panel (#6194) 2026-08-15 16:03:42 +02:00
node_netmetrics_test.go
node_origin_guid_test.go fix(node): stop stale expiry sync from undoing client extensions (#6228) (#6231) 2026-08-23 23:17:56 +02:00
node_probe_body_cap_test.go Update deps and simplify parsing 2026-09-08 14:12:13 +02:00
node_probe_unsampled_test.go fix(nodes): stop a restarting panel from reporting itself as down 2026-09-18 13:25:24 +03:00
node_push_payload_test.go
node_reset_queue.go fix(traffic): make a client reset reach every counter enforcing its quota 2026-09-28 02:56:53 +02:00
node_reset_undelivered_test.go fix(traffic): make a client reset reach every counter enforcing its quota 2026-09-28 02:56:53 +02:00
node_shared_guid_test.go
node_sweep_guard_test.go fix(node): stop stale expiry sync from undoing client extensions (#6228) (#6231) 2026-08-23 23:17:56 +02:00
node_sync_link_churn_test.go perf(clients): write client_inbounds deltas and check identity from the clients table 2026-08-20 04:09:57 +02:00
node_tag_sync_test.go fix(node): stop stale expiry sync from undoing client extensions (#6228) (#6231) 2026-08-23 23:17:56 +02:00
node_test.go fix(node): adopt a matching deployed inbound instead of recreating it (#6197) 2026-08-14 20:01:35 +02:00
node_token_encryption_test.go feat(nodes): opt-in encryption at rest for the outbound node API token (#6186) 2026-08-15 16:48:50 +02:00
node_tree.go fix(node): drop online clients and sub-nodes of nodes no longer synced 2026-09-15 19:27:38 +02:00
node_tree_test.go
node_unsynced_online_test.go fix(node): drop online clients and sub-nodes of nodes no longer synced 2026-09-15 19:27:38 +02:00
outbound_hwid_test.go fix(sub): send panel guid as X-HWID on outbound subscription fetch (#6579) 2026-09-26 21:59:29 +02:00
outbound_subscription.go fix(sub): send panel guid as X-HWID on outbound subscription fetch (#6579) 2026-09-26 21:59:29 +02:00
outbound_subscription_ssrf_test.go
outbound_subscription_test.go fix(outbounds): keep subscription tags on their server when reality params rotate 2026-09-15 22:39:59 +02:00
port_conflict.go feat(xray): add the MASQUE protocol and transport 2026-10-11 10:28:49 +02:00
port_conflict_forwarded_test.go fix(ports): refuse an inbound on a port an AmneziaWG peer forwards (#6554) 2026-09-15 16:58:21 +03:00
port_conflict_test.go feat(xray): add the MASQUE protocol and transport 2026-10-11 10:28:49 +02:00
reality_scan.go feat(settings): add setting for Reality scan candidates (#6471) 2026-09-13 14:48:28 +02:00
reality_scan_test.go feat(settings): add setting for Reality scan candidates (#6471) 2026-09-13 14:48:28 +02:00
reset_writer_test.go
scale_helpers_test.go perf(tests): copy a migrated template DB instead of migrating per test 2026-09-27 03:04:50 +02:00
server.go fix(server): apply the outbound address policy to remote cert pinning 2026-10-03 13:20:00 +02:00
server_cold_status_test.go test: stop swapping http.DefaultTransport in the Happ network test (#6742) 2026-10-08 22:02:46 +02:00
server_geofile_test.go perf(tests): copy a migrated template DB instead of migrating per test 2026-09-27 03:04:50 +02:00
server_import_sniff_test.go perf(tests): copy a migrated template DB instead of migrating per test 2026-09-27 03:04:50 +02:00
server_import_stage_test.go perf(tests): copy a migrated template DB instead of migrating per test 2026-09-27 03:04:50 +02:00
server_pg_restore_test.go
server_public_ip_async_test.go perf(tests): copy a migrated template DB instead of migrating per test 2026-09-27 03:04:50 +02:00
server_remote_cert_hash_test.go fix(server): apply the outbound address policy to remote cert pinning 2026-10-03 13:20:00 +02:00
server_syslog_test.go Bound the panel syslog view with a journalctl timeout (#6689) 2026-10-03 01:21:25 +02:00
server_vlessenc_test.go
server_xray_checksum_test.go
setting.go fix(finalmask): refuse a salamander password xray-core cannot open 2026-10-11 18:26:45 +02:00
setting_clash_test.go
setting_factory_defaults_test.go feat(discord): add Discord notification bot service (#6486) 2026-09-13 14:04:53 +02:00
setting_happ_test.go feat(happ): generate Crypt5 subscription links locally (#6494) 2026-09-13 12:44:55 +02:00
setting_mtls.go fix(nodes): say which half of node mTLS failed, and say it as an error (#6565) 2026-09-16 12:30:44 +02:00
setting_mtls_bundle_test.go fix(nodes): say which half of node mTLS failed, and say it as an error (#6565) 2026-09-16 12:30:44 +02:00
setting_mtls_test.go perf(tests): copy a migrated template DB instead of migrating per test 2026-09-27 03:04:50 +02:00
setting_remote_routing_test.go feat(sub): bake Happ/INCY routing profiles into the JSON subscription (#6402) 2026-09-10 17:05:54 +02:00
setting_security_test.go perf(tests): copy a migrated template DB instead of migrating per test 2026-09-27 03:04:50 +02:00
setting_sub_identity_test.go
setting_sub_info_node_test.go feat(sub): add dummy info node and status configs for subscriptions (#6412) 2026-09-08 17:14:01 +02:00
setting_sub_json_dns_test.go feat(sub): let the panel set the JSON subscription DNS servers (#6485) 2026-09-13 11:51:56 +02:00
setting_sub_profile_test.go fix(sub): prevent default profile page URL disclosure (#6538) 2026-09-15 21:13:29 +02:00
shadowsocks_client_key_test.go
shadowsocks_server_key_test.go fix(inbounds): refuse 2022-blake3-chacha20-poly1305 on shadowsocks inbounds 2026-10-11 21:20:07 +02:00
stream_network_alias_test.go
sub_balancer.go feat(sub): leastLoad member weights for subscription balancers (#6304) 2026-09-02 20:21:27 +02:00
sub_balancer_inbound_cleanup_test.go feat(sub): client-side balancers for the JSON subscription (#6243) 2026-08-23 22:34:20 +02:00
sub_balancer_test.go perf(tests): copy a migrated template DB instead of migrating per test 2026-09-27 03:04:50 +02:00
sub_uri_base_test.go
sync_scale_postgres_test.go feat(clients): support setting HWID limit and MTProto ad-tag in bulk adjust (#6399) 2026-09-10 16:24:48 +02:00
traffic_commit_test.go
traffic_depletion_node_push_test.go fix(traffic): push depletion changes to nodes off the serial writer 2026-09-15 19:04:55 +02:00
traffic_poll_scale_test.go
traffic_runtime_apply_test.go fix(traffic): push depletion changes to nodes off the serial writer 2026-09-15 19:04:55 +02:00
traffic_writer.go fix(hwid): serialize the device-limit write with its trim (#6591) 2026-09-26 20:30:22 +02:00
traffic_writer_test.go
tuic_accounting_identity_test.go feat(tuic): implement native in-process Go TUIC v5 server (#6577) 2026-10-03 02:56:02 +02:00
tuic_settings.go feat(tuic): implement native in-process Go TUIC v5 server (#6577) 2026-10-03 02:56:02 +02:00
tuic_traffic_receipt.go feat(tuic): implement native in-process Go TUIC v5 server (#6577) 2026-10-03 02:56:02 +02:00
tx_pool_starvation_test.go fix(node-sync): keep shared-email lookups on the open transaction 2026-10-11 22:05:24 +02:00
url_safety.go fix(panel): stop one poisoned DNS answer from blocking outbound tests 2026-08-24 13:27:40 +02:00
url_safety_test.go fix(panel): stop one poisoned DNS answer from blocking outbound tests 2026-08-24 13:27:40 +02:00
ws_payload_scale_test.go
xray.go fix(xray): fall back to the userspace TUN where kernel TUN cannot be set up 2026-10-12 17:52:45 +02:00
xray_amneziawg_outbound.go feat(amneziawg): add AmneziaWG as an outbound protocol (#6320) 2026-09-10 14:50:48 +02:00
xray_amneziawg_outbound_test.go fix(amneziawg): fall back to a free egress port when 64900 is refused 2026-09-27 16:09:54 +02:00
xray_balancer_override.go fix(xray): keep balancer overrides across routing reloads (#6779) 2026-10-12 14:59:26 +02:00
xray_balancer_override_e2e_test.go fix(xray): keep balancer overrides across routing reloads (#6779) 2026-10-12 14:59:26 +02:00
xray_balancer_override_test.go fix(xray): keep balancer overrides across routing reloads (#6779) 2026-10-12 14:59:26 +02:00
xray_bind_conflict.go fix: allow IPv4 and IPv6 inbounds to share a port (#6603) 2026-09-26 22:02:22 +02:00
xray_bind_conflict_test.go fix: allow IPv4 and IPv6 inbounds to share a port (#6603) 2026-09-26 22:02:22 +02:00
xray_config_clients_test.go fix(xray): keep XDRIVE storage and Vision flow within what xray-core runs 2026-10-12 00:49:11 +02:00
xray_config_inject_test.go fix(amneziawg): sniff the relay with routeOnly; scope the v6 egress to IPv6 (#6654) 2026-09-26 22:04:08 +02:00
xray_config_scale_test.go
xray_drop_clients_test.go fix(xray): restart when a diff strands a client's live session (#6550) 2026-09-15 15:39:40 +03:00
xray_hot_apply_persist_test.go Write config.json after a hot apply (#6686) 2026-10-03 01:23:25 +02:00
xray_lifecycle_test.go
xray_log_confine_test.go fix(xray): confine log paths written under any key case 2026-09-03 18:06:15 +02:00
xray_metrics.go
xray_metrics_test.go perf(tests): copy a migrated template DB instead of migrating per test 2026-09-27 03:04:50 +02:00
xray_process_test_seam.go chore(node): cover the sync tick's online prune from the job package 2026-09-15 20:39:32 +02:00
xray_restart_test.go
xray_setting.go fix(xray): keep XDRIVE storage and Vision flow within what xray-core runs 2026-10-12 00:49:11 +02:00
xray_setting_dns_qtype_test.go fix(xray): stop a lone dns qType 0 from matching every query 2026-09-15 16:00:05 +02:00
xray_setting_dns_routing.go
xray_setting_dns_routing_test.go
xray_setting_routing_sync.go fix(xray): read the last two inboundTag protocol ids like the core (#6530) 2026-09-14 21:18:31 +03:00
xray_setting_routing_sync_test.go fix(xray): read the last two inboundTag protocol ids like the core (#6530) 2026-09-14 21:18:31 +03:00
xray_setting_test.go
xray_strip_rules_test.go
xray_wireguard_config_test.go fix(node-sync): write only changed client rows in the node traffic merge 2026-10-14 00:37:00 +02:00
xray_xhttp_session_test.go feat(xray): update xray-core to v26.10.10 and adapt panel 2026-10-11 07:55:12 +02:00