mirror of
https://github.com/MHSanaei/3x-ui.git
synced 2026-02-28 05:02:59 +00:00
1.4 KiB
1.4 KiB
13. Feature File Map and Decision Log
Why this exists
To preserve implementation intent and reduce rediscovery cost when modifying the custom client-center extension.
Decision log (session)
-
Decision: Build client-center as orchestration layer instead of replacing inbound-native model.
Reason: Lower break risk with existing email/inbound-centric traffic and client logic.
-
Decision: Keep existing inbounds/client APIs intact and add new API namespace.
Reason: Backward compatibility for existing UI and operational scripts.
-
Decision: Add panic guards in Xray API integration points.
Reason: Improve resilience in dev/runtime states where handler client may be unavailable.
File map (custom extension)
Data models:
database/model/model.goMasterClientMasterClientInbound
Migration registration:
database/db.go
Backend service:
web/service/client_center.go
Controller/API:
web/controller/client_center.goweb/controller/api.go(mounts/panel/api/clients)
UI route and page:
web/controller/xui.go(/panel/clients)web/html/clients.htmlweb/html/component/aSidebar.html
Stability fix:
xray/api.go
Dev tooling:
.air.tomljustfile
Future extension points
- Add granular permissions for clients API.
- Add audit logs table for master-client actions.
- Add integration tests for sync edge-cases.
- Add i18n keys for custom page labels/messages.