Skip to main content

Togol ciri

Penempatan white-label jarang menghantar setiap keupayaan. Togol ciri membolehkan operador menghidup/matikan ciri produk utama — pada masa penempatan melalui konfigurasi, atau kemudian pada masa jalan, tanpa penempatan semula. Semua ciri dilalai aktif; penempatan hanya menyenaraikan yang berubah.

Model​

  • Core.Features.FeatureFlag — enum ciri yang boleh digerbang: Authoring, Backtesting, Execution, CopyTrading, Ai, PortfolioAgent, Alerts, PropGuard, PropFirm, Accounts, OpenApi, Mcp, Compliance. Admin teras permukaan (dashboard, pengguna, nod, auth) tidak pernah boleh digerbang, bukan di sini.
  • Core.Options.FeaturesOptions — konfigurasi paksi, diikat dari App:Features. Setiap sifat dilalai true.
  • Core.Features.IFeatureGate — menyelesaikan keadaan berkesan: konfigurasi paksi dihamparkan dengan utama tunggakan masa jalan opsyen. Dilaksanakan oleh Infrastructure.Features.FeatureGate, menyimpan tunggakan dengan cepat (FeatureSettings.OverrideCacheTtl), membatalkan pada perubahan.

Tunggakan masa jalan disimpan sebagai baris AppSetting berpalang feature.<FeatureFlag> (nilai true/false). Tiada baris = "guna konfigurasi paksi".

Dua cara melumpuhkan ciri​

1. Konfigurasi penempatan (paksi)​

Tetapkan tanda false di bawah App:Features. Contoh appsettings.json:

{
"App": {
"Features": {
"CopyTrading": false,
"PropGuard": false
}
}
}

Atau melalui pembolehubah env (double underscore):

App__Features__CopyTrading=false

Paksi menggerbang pendaftaran permulaan pekerja latar belakang (Nodes.AddNodes) dan alat MCP (Mcp server), jadi ciri yang dilumpuhkan dalam konfigurasi tidak pernah memulakan perkhidmaten yang dihoskan atau mendedahkan alat MCPnya.

2. Utama tuggakan masa jalan (pemilik)​

Pemilik boleh flip mana-mana ciri masa jalan dari Tetapan → Ciri (/settings/features) atau API:

GET /api/features -> [{ "flag": "CopyTrading", "enabled": true }, ...] (Pemilik)
PUT /api/features/{flag} body { "enabled": false } -> tetapkan tuggakan (Pemilik)
PUT /api/features/{flag} body { "enabled": null } -> jelaskan tuggakan (UND) (Pemilik)

Perubahan masa jalan berkuatkuasa serta-merta untuk gerbang masa permintaan (navigasi, API). Pekerja latar belakang dan alat MCP yang digerbang pada permulaan, ambil perubahan masa jalan pada memulakan semula proses seterusnya.

Apa yang setiap gerbang kuatkuasa​

LapisanMekanismePemasaan
HTTP APIRouteGroupBuilder.RequireFeature(flag) penapis endpoint → 404 apabila dilumpuhkanMasa jalan
NavigasiNavMenu menyembunyikan pautan melalui IFeatureGate.IsEnabledMasa jalan
Pekerja latar belakangAddHostedService bersyarat dalam Nodes.AddNodesPermulaan (konfigurasi)
Alat MCPWithTools<> bersyarat dalam pelayan MCPPermulaan (konfigurasi)

Ciri yang dicapai melalui deep link semasa dilumpuhkan memapar halaman kosong — APInya mengembalikan 404; nav tidak lagi memaparkannya.

Peta tanda → permukaan​

TandaKumpulan APINavPekerja / MCP
Authoring/api/cbots, /api/paramsets, /api/builderKumpulan cBots → cBots (param sets setiap dialog cBot)MCP CBotTools
Backtesting(berkongsi /api/instances)Kumpulan cBots → Backtest—
Execution/api/instancesKumpulan cBots → RunMCP InstanceTools
CopyTrading/api/copySalinan PerdaganganCopyEngineSupervisor, OpenApiTokenRefreshService, MCP CopyTools
Ai/api/aiKumpulan AI → AI; Tetapan → AI (kunci)AiRiskGuard, MCP AiTools
PortfolioAgent/api/agentKumpulan AI → Ejen PortfolioPortfolioAgentService
Alerts/api/alertsKumpulan AI → MaklumanAlertEvaluator
PropGuard/api/propKumpulan Prop → Prop GuardPropGuardService
PropFirm/api/prop-firmKumpulan Prop → Cabaran—
Accounts/api/ctidsAkaun Perdagangan—
OpenApi/api/openapiTetapan → Open API—
Mcp/api/mcp-keysKumpulan AI → Kunci MCP—
Compliance/api/complianceTetapan → Undang-undang & Privasi—

Ujian​

  • Unit — UnitTests/Features/FeaturesOptionsTests.cs: lalai paksi, pemetaan setiap tanda.
  • Integrasi — IntegrationTests/FeatureGateTests.cs: paksi konfigurasi, tuggakan masa jalan mengatasi konfigurasi dan bertekak sebagai AppSetting, membersihkan kembali ke paksi (Postgres sebenar).
  • E2E — E2ETests/FeatureToggleTests.cs: melumpuhkan CopyTrading pada masa jalan menyembunyikan pautan navnya dan 404s /api/copy, membolehkan semula memulihkan kedua-duanya.