Kredensi dev — satu fail untuk setiap ujian
Semua kredensi yang diperlukan suite ujian tinggal dalam satu fail gitignored:
secrets/dev-credentials.local.json. Salin templat yang dikomit dan isikan apa yang anda
ada — setiap nilai adalah pilihan dan ujian yang memerlukan nilai yang hilang dilangkau dengan kemas.
mkdir -p secrets
cp dev-credentials.example.json secrets/dev-credentials.local.json
# edit secrets/dev-credentials.local.json
Apa yang dibaca setiap lapisan ujian
| Lapisan | Perlukan | Dari |
|---|---|---|
Unit (tests/UnitTests) | tiada apa-apa | — deterministik, tiada rahsia, tiada rangkaian |
Integrasi (tests/IntegrationTests) | Postgres | Testcontainers (Docker) — automatik |
Salinan langsung (tests/IntegrationTests/CopyLive) | Apl OpenAPI + cache token | OpenApi.App, OpenApi.Tokens |
E2E aboard (tests/E2ETests/CopyLive) | Apl OpenAPI + log masuk cID | OpenApi.App, OpenApi.Cids |
E2E lari/backtest sebenar (CBotRealRunBacktestTests) | Log masuk cID + nombor akaun demo | OpenApi.Cids[].{Username,Password,Accounts} |
| Ciri AI | Kunci Anthropic | Ai.ApiKey (tetapkan ⇒ ciri AI kembalikan dilumpuhkan, apl masih berjalan) |
Live economic-calendar sources (tests/IntegrationTests/Calendar/CalendarSourceLiveTests) | FRED / BLS API keys | Calendar.FredApiKey, Calendar.BlsApiKey (unset ⇒ that source's live test skips; the keyless central-bank schedule still works) |
Skima
Lihat dev-credentials.example.json di akar repo. Bahagian:
-
OpenApi.App—{ ClientId, ClientSecret }aplikasi cTrader Open API. -
OpenApi.Cids— log masuk ID cTrader yang digunakan oleh aboard utan pelayar. Setiap entri juga membawa tatasusunanAccounts— nombor akaun perdagangan cTrader (nombor log masuk/akaun, cth3635817) di bawah cID itu yang infrastuktur ujian dibenarkan untuk memaut ke apl dan mengawal.CBotRealRunBacktestTestsmembaca entri pertama yang mempunyai tatasusunanAccountsbukan kosong, menambah cID + akaun itu ke apl, kemudian benar-benar Melarikan dan backtest cBot pad nó. Letakkan hanya nombor akaun demo di sini — tidak pernah akaun langsung; ujian lari/backtest meletakkan pesanan sebenar pada mana-mana akaun yang anda senaraikan.Accountskosong/dihilang ⇒ ujian lari/backtest sebenar melangkau dengan kemas. -
OpenApi.Tokens— cache token pelbagai cID (satu entri setiap cID yang dibenarkan dengan akses/refresh token + senarai akaun). Ditulis secara automatik oleh aboard dan oleh langkah penyegaran token; anda jarang mengedit nó secara manual. -
Owner— log masuk pemilik Seed untuk apl di bawah E2E. -
Database.ConnectionString— hanya apabila mengarahkan ujian kepada Postgres luaran berbanding Testcontainers. -
Ai.ApiKey— kunci API Anthropic untuk ciri AI. -
Calendar.FredApiKey— FRED (St. Louis Fed) API key. The primary economic-calendar value source (interest rates, inflation, employment). -
Calendar.BlsApiKey— BLS (US Bureau of Labor Statistics) v2 registration key (CPI, PPI, employment, JOLTS). Absent ⇒ the low-quota public tier.Both feed the exact
FredSource/BlsSourcethe ingestion worker uses. With a key present,CalendarSourceLiveTestshits the real provider and asserts observations come back; absent, that source's test skips cleanly. The app also reads these at runtime viaApp:Calendar:FredApiKey/App:Calendar:BlsApiKey(environment variables override — e.g.FRED_API_KEY,BLS_API_KEY).
Keutamaan
- Pembolehubah persekitaran mengatasi segalanya (cth
App__OwnerPassword,App:Ai:ApiKey). secrets/dev-credentials.local.json— fail bersatu (pilihan).- Fail legacy split —
openapi-test-app.local.json,openapi-cids.local.json,openapi-tokens.local.jsonmasih dibaca apabila fail bersatu tiada, jadi mesin sedia ada terus berfungsi. Persediaan baharu harus gunakan fail tunggal.
Keselamatan
secrets/dan*.local.jsondi-gitignore — tidak ada di sini yang pernah dikomit.- Ujian salinan langsung enggan lari terhadap akaun bukan demo (
IsLiveditapis olehLiveCopyFixture). Simpan hanya akaun demo dalam cache token. - Dalam-kluster (Kubernetes) lari memasang fail sebagai Rahsia baca sahaja; penyegaran token disimpan dalam memori dan tulis balik baca sahaja ialah no-op senyap.