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 parcha (sandbox server)

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

Idempotentlik psevdokodi

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.

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.