GH GambleHub

Qum qutilari va sinov muhitlari

TL; DR

Ishonchli qum qutisi = to’liq izolyatsiya, sintetik/shaxssiz ma’lumotlar, tashqi tizimlarning real simulyatorlari, oldindan aytib bo’ladigan sidlar va time-travel, o’rnatilgan idempotentlik va vebxuklar, shaffof limitlar va metriklar. Prod - yetib bo’lmaydi, kalitlar - aylanadi, promotion - faqat chek varaqalari bo’yicha.

1) Atrof-muhit xaritasi va ularning roli

MuhitMaqsadKirishMaʼlumotlarIshonchlilik
Local/DevTezkor ishlab chiqishMuhandislarSintetika/minimal fiksturaPast
CI/TestUnit/integratsiya/kontrakt testlariCI/CDAvtosidlarO’rta
Stage/Pre-prodYakuniy yig’ish, regressCheklanganAnonim snapshotlarYuqori
Public SandboxTashqi sheriklar/savdogarlarGate + limitlarFaqat sintetikaO’rta
ProdJangovarSSO/qattiq kirishHaqiqiyMaksimal

Qoidasi: sandbox ≠ prod. Har qanday aloqa - real vositalar/o’yinlar/shaxsiy ma’lumotlarga kirmasdan bir tomonlama simulyatorlar orqali amalga oshiriladi.

2) Ma’lumotlar: sintetika, anonimlashtirish, sidirlash

Andoza sintetika. Pasport/kartochka ma’lumotlari generatorlari, valid, ammo moliyaviy bo’lmagan PAN (test BIN), stavkalar va balanslarning «tirik» patternlari.
Stage uchun anonimlashtirish: identifikatorlarni tokenlash, agregatlar uchun differensial maxfiylik, noyob kombinatsiyalarni olib tashlash.
Sid va determinizm: bitta jamoa - bitta holat.

bash make db-reset && make db-seed ENV=sandbox SEED=2025_11_03

Time-travel: muddatlar/ekspiratsiya testlari uchun global atrof-muhit soati.

3) Simulyatorlar va zagushkalar (stubs)

To’lovlar/banklar/PSP

Auth/Capture/Refund/Payout со сценариями: `approved`, `declined_insufficient`, `3ds_required`, `timeout`, `duplicate`.
PSP vebxuklari: HMAC tomonidan imzolangan, retrajlar, kechikishlar va «iflos internet».

KYC/AML/Sanctions

Ответы: `clear`, `pep_match`, `sanction_hit`, `doc_mismatch`, `manual_review`.
Idempotentlik va rate limits proddagi kabi.

Oʻyin provayderlari/katalog

Lobbi, fich, RTP/raundlar - UX-keyslar uchun boshqariladigan «to’lovlar/muvaffaqiyatsizliklar».

Moslama: simulyator «qattiqligi» (happy-path vs chaos).

4) Qum qutisidagi vebxuklar

HMAC imzolari (v1), «X-Event-Id», «X-Timestamp» sarlavhalari, oyna ≤ 5 daqiqa.
Eksponensial backoff, DLQ va replay.
«Qayta jo’natish» konsoli va urinishlar loglari.

Psevdo:
pseudo
POST /psp/webhooks
Headers: X-Signature, X-Timestamp, X-Event-Id
Body: { event_id, type, data, attempt }

5) Idempotentlik va determinizm

Barcha mutatsiyalar «Idempotency-Key» ni qabul qiladi.
Simulyatorlar natijani kalit bo’yicha saqlaydi (TTL 24-72 soat).
«Seed-determinizm»: bir xil kirishda - bir xil natija (takrorlanadigan testlar uchun).

6) Xavfsizlik va foydalanish

Izolyatsiya tarmoqlari/VPC, alohida sirlar va domenlar (’sandbox. example. com`).
RBAC/ABAC: «partner», «qa», «dev» rollari, tokenlar minimal.
Rate-limits va kvotalar: per-tenant/kalit, tushunarli’429 ’/’ Retry-After’.
Sirlar faqat KMS/Vault’da; muntazam ravishda rotatsiya qilish.
Kod/konfiga (feature-flag hard block) darajasida real to’lovlarni taqiqlash.

7) API Gateway va sandboxda kuzatish

Xuddi shu siyosatlar: OAuth2/OIDC/JWT, CORS, WAF, DDoS profil.
Metriklar: p50/p95/p99, 4xx/5xx, hit-rate limitlar, latency webhooks, idempotent xitlar.
Logi/treyslar: PIIsiz; korellatsiya’trace _ id’.
«Qum qutisi salomatligi» dashbordi: aptaym, vebxuk navbatlari, simulyator xatolari.

8) Ficha-bayroqlar, versiyalar va muvofiqlik

Fichni sandbox → stage → prod.
API uchun SemVer; Swagger/Redoc qum qutisidagi Deprecation/Sunset banneri.
Persisted queries for GraphQL-vitrin (agar mavjud bo’lsa).

9) CI/CD и promotion

1. Build/Unit →

2. Contract/Mock tests (OpenAPI/Protobuf/GraphQL SDL) →

3. Simulyatorlarga qarshi integratsiya →

4. Stage regress (anon. snapshotlar) →

5. Canary в prod.

Gate-chek-listi promotion: § 12 dan past.

10) sheriklar uchun UAT-stsenariylari (qum qutisida)

To’lovlar: auth/capture/refund/payout vebxuklari va PSP xatolari bilan.
KYC/AML: barcha holatlar + qoʻlda eskalatsiya.
Idempotentlik: takroriy’Idempotency-Key’→ xuddi shunday natija.
Rate-limit:’429’ga to’g "ri ishlov berish.
Vaqtinchalik derazalar: tokenlarning ekspiratsiyasi,’Retry-After’, time-travel keyslari.
Webhooks: imzolar/retraylar/DLQ, qoʻlda replay va dedup.

11) Ma’lumotlar siyosati va maxfiylik

Real PAN/KYC docklarni hech qachon sandbox/stage tizimida saqlamang.
Anonimlashtirish: niqoblash, to’g «ridan to’g» ri identifikatorlarni olib tashlash, sintetik korrelyatsiya.
Vebxuk loglari va jismlarini saqlash TTL ≤ reglamentli.

12) Chek-varaqlar

12. 1 Yangi qum qutisini ishga tushirish

  • Izolyatsiya qilingan tarmoq/baza/kesh/obyekt ombori
  • Sirlar KMS/Vault’da yaratilgan, rollarga kirish
  • PSP/KYC/o’yinlar simulyatorlari
  • Swagger/Redoc + Postman kolleksiyasi (sandbox endpoints)
  • Vebxuklar: HMAC, retry, DLQ, replay konsoli
  • Rate/Quota profillari, Deprecation/Sunset bannerlari (agar mavjud bo’lsa)
  • Dashbordlar va alertlar (latency, 5xx, 429, DLQ)

12. 2 Promotion release (stage→prod)

  • Kontrakt diff tekshiruvlari (breakingsiz)
  • Stage uchun normal yuk p95/p99
  • Vebxuklar UATdan o’tdi, idempotentlik taxminan
  • Ficha bayroqlari tayyorlandi, qaytarish rejasi mavjud
  • Changelog, migratsiya qo’llanmasi va sheriklarga yuborish

13) Antipatternlar

Prod-servislarga/bazalarga «yashirincha» tegadigan qum qutisi.
Haqiqiy kartochka/pasport ma’lumotlari stage/sandbox.
Vebhuk/retrajsiz simulyatorlar - faqat «baxtli yo’l».
Idempotentlik yo’qligi → to’lovlar/stavkalar dublikatlari.
Barcha hamkorlar uchun bitta umumiy HMAC-sir.
Limitlar va shaffof 429/Retry-After yoʻq.

14) Mini-snippetlar

.env. sandbox (misol)

dotenv
API_BASE=https://sandbox. api. example. com
OAUTH_ISS=https://sandbox. idp. example. com
PSP_SIM_URL=https://sandbox. psp-sim. example. com
KYC_SIM_URL=https://sandbox. kyc-sim. example. com
WEBHOOK_SECRET_ROTATION_DAYS=90
FEATURE_FORCE_SANDBOX_PAYMENTS=1

OpenAPI fragmenti (sandbox server)

yaml servers:
- url: https://sandbox. api. example. com/v1 description: Public Sandbox

Idempotentlik soxta hujjati

pseudo if store. exists(idem_key): return store. get(idem_key)
res = do_business()
store. set(idem_key, res, ttl=72h)
return res

PSP simulyatori triggerlari

json
{ "scenario": "payout", "case": "declined_insufficient", "payout_id": "p_123" }

15) Kuzatish va SLO qum qutisi

Uptime sandbox API ≥ 99. 5% (integratsiya oynasi tushmasligi kerak).
Webhooks p95 ≤ 3 s dan 2xx gacha normal yuklashda.
Error budget 5xx shlyuz ≤ 0. 1%.
Doc-portal mavjud va shartnoma bilan sinxronlashtirilgan.

16) Governance

Atrof-muhit egasi (SRE/Platform) va steward API (kontraktlar).
Breaking-oʻzgarishlar uchun RFC jarayoni, Deprecation/Sunset taqvimi.
Ommaviy qum qutisi uchun alohida limitlar/kvotalar va praysing «fair-use».

Xulosa

Qum qutisi «baza nusxasi» emas, balki ishlab chiquvchilar uchun mahsulotdir. Qattiq izolyatsiya, sintetik ma’lumotlar, vebxuk va retrajli to’liq simulyatorlar, sidlar va time-travel orqali determinizm, ficha bayroqlari va shaffof limitlar bering. Hamma narsani shartnomalar, kuzatuv va governance bilan bog’lang - va sizning integratsiyalaringiz tez, xavfsiz va oldindan aytib bo’ladigan bo’ladi, va relizlar og’riqsiz bo’ladi.

Contact

Biz bilan bog‘laning

Har qanday savol yoki yordam bo‘yicha bizga murojaat qiling.Doimo yordam berishga tayyormiz.

Telegram
@Gamble_GC
Integratsiyani boshlash

Email — majburiy. Telegram yoki WhatsApp — ixtiyoriy.

Ismingiz ixtiyoriy
Email ixtiyoriy
Mavzu ixtiyoriy
Xabar ixtiyoriy
Telegram ixtiyoriy
@
Agar Telegram qoldirilgan bo‘lsa — javob Email bilan birga o‘sha yerga ham yuboriladi.
WhatsApp ixtiyoriy
Format: mamlakat kodi va raqam (masalan, +998XXXXXXXX).

Yuborish orqali ma'lumotlaringiz qayta ishlanishiga rozilik bildirasiz.