GH GambleHub

Gum gutulary we synag gurşawy

TL; DR

Ygtybarly sandyk gutusy = doly izolýasiýa, sintetiki/şahsylaşdyrylmadyk maglumatlar, daşarky ulgamlaryň hakyky simulýatorlary, öňünden aýdyp boljak sidler we wagt-syýahat, gurlan idempotentlik we webhuklar, aç-açan çäkler we metrikler. Önüm - elýeterli däl, açarlar - aýlanýar, promotion - diňe çek sahypalary boýunça.


1) Daşky gurşawyň kartasy we olaryň rollary

GurşawMaksatGirişMaglumatYgtybarlylyk
Local/DevÇalt ösüşInženerlerSintetika/minimal fiksturaPes
CI/TestUnit/integrasiýa/şertnama synaglaryCI/CDAwtosidlerOrta
Stage/Pre-prodJemleýji ýygnamak, regressÇäkliAnonim snapshotlarÝokary
Public SandboxDaşarky hyzmatdaşlar/söwdagärlerGate + çäklendirmelerDiňe sintetikaOrta
ProdSöweşSSO/Berk girişHakykyIň ýokary

Düzgün: sandbox ≠ prod. Islendik aragatnaşyk - hakyky serişdelere/oýunlara/şahsy maglumatlara girip bilmeýän birtaraplaýyn simulýatorlar arkaly.


2) Maglumatlar: sintetika, anonimleşdirmek, oturtmak

Adaty sintetika. Pasport/kartoçka maglumatlarynyň generatorlary, hakyky, ýöne maliýe däl PAN (test BIN), nyrhlaryň we balanslaryň "janly" patternleri.
Stage üçin anonimleşdirmek: kesgitleýjileri bellemek, agregatlar üçin differensial gizlinlik, seýrek kombinasiýalary aýyrmak.
Sidler we determinizm: bir topar - bir döwlet.

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

Wagt-travel: möhletler/ekspirasiýa synaglary üçin gurşawyň global "sagady".


3) Simulýatorlar we tüpeňler (stubs)

Tölegler/banklar/PSP

Auth/Capture/Refund/Payout со сценариями: `approved`, `declined_insufficient`, `3ds_required`, `timeout`, `duplicate`.
PSP webhuklary: HMAC tarapyndan gol çekilen, retralar, gijikdirmeler we "hapa internet".

KYC/AML/Sanctions

Ответы: `clear`, `pep_match`, `sanction_hit`, `doc_mismatch`, `manual_review`.
Idempotentlik we rate limits proddaky ýaly goldaw.

Oýun üpjün edijileri/katalog

Lobbi, fiçler, RTP/tapgyrlar - UX-wakalar üçin "tölegler/şowsuzlyklar" tarapyndan dolandyrylýan pseudo-görnükli nesil.

Opsiýa: simulýatoryň "agyrlygy" (happy-path vs chaos).


4) Gum gutusyndaky webhuklar

HMAC (v1) gollary, "X-Event-Id", "X-Timestamp" sözbaşylary, penjire ≤ 5 minut.
Eksponensial backoff, DLQ we replay bilen retrailer.
"Gaýtadan ibermek" konsoly we synanyşyklaryň ýazgylary.

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

5) Idempotentlik we determinizm

Mutasiýa "Idempotency-Key" -ni kabul edýär.
Simulýatorlar netijäni açar boýunça saklaýarlar (TTL 24-72 sagat).
"Seed-determinizm": şol bir girelgede - şol bir netije (gaýtalanýan synaglar üçin).


6) Howpsuzlyk we elýeterlilik

Tor izolýasiýasy/VPC, aýry-aýry syrlar we domenler ('sandbox. example. com`).
RBAC/ABAC: "partner", "qa", "dev" rollary, token toplary az.
Rate-limits we kwotalar: adalatly per-tenant/açar, düşnükli '429 '/' Retry-After'.
Diňe KMS/Vault-da syrlar; yzygiderli aýlanmak.
Hakyky tölegleriň kod/konfiga derejesinde gadagan edilmegi (feature-flag hard blok).


7) API Gateway we sandbox gözegçilik

Şol bir syýasatlar: OAuth2/OIDC/JWT, CORS, WAF, DDoS-profil.
Metrikler: p50/p95/p99, 4xx/5xx, hit-rate limitleri, latency webhooks, idempotent hitleri.
Giriş/söwda: PII bolmasa; korelýasiýa 'trace _ id'.
"Gum gutusynyň saglygy" dashbord: apteim, webhuklaryň nobatlary, simulýatorlaryň ýalňyşlyklary.


8) Baýdaklar, wersiýalar we gabat gelmek

Sandbox → stage → prod.
API üçin SemVer; Deprecation/Sunset banneri Swagger/Redoc sandyk gutusynda.
GraphQL-vitrinler üçin persisted queries (bar bolsa).


9) CI/CD и promotion

1. Build/Unit →

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

3. Simulýatorlara garşy integrasiýa →

4. Stage regress (anon. snapshotlar) →

5. Canary в prod.

Gate-çek-sanawy promotion: aşakdaky § 12.


10) Hyzmatdaşlar üçin UAT-ssenariýalar (sandyk gutusynda)

Tölegler: PSP webhuklary we ýalňyşlyklary bilen auth/capture/refund/payout.
KYC/AML: ähli statuslar + el eskalasiýasy.
Idempotentlik: gaýtalanýan 'Idempotency-Key' → şol bir netije.
Rate-limit: dogry gaýtadan işlemek '429'.
Wagtlaýyn penjireler: tokenleriň ekspirasiýasy, 'Retry-After', wagt-syýahat halatlary.
Webhooks: gollar/retrailer/DLQ, el bilen replay we dedup.


11) Maglumatlar syýasaty we gizlinlik

Hiç haçan hakyky PAN/KYC doklaryny sandbox/stage-da saklamaň.
Anonymizasiýa: gizlemek, göni kesgitleýjileri aýyrmak, sintetiki baglanyşyk.
TTL reglament ≤ webhuk ýazgylaryny we jisimlerini saklamak.


12) Çek-listler

12. 1 Täze gum gutusyny işe girizmek

  • Izolirlenen tor/baza/kesh/obýekt ammary
  • Syrlar KMS/Vault-da döredildi, rollar boýunça elýeterlilik
  • PSP/KYC/oýun simulýatorlary öňe sürülýär we wersiýa edilýär
  • Swagger/Redoc + Postman kolleksiýasy (sandbox endpoints)
  • Webhuklar: HMAC, retry, DLQ, replay konsoly
  • Rate/Quota profilleri, Deprecation/Sunset bannerleri (bar bolsa)
  • Daşbordlar we alertler (latency, 5xx, 429, DLQ)

12. 2 Promotion release (stage→prod)

  • Şertnamalaýyn diff-barlaglar (breaking)
  • Ýüklemek p95/p99 stage kadaly
  • Webhuklar UAT-dan geçdi, idempotentlik ok
  • Baýdaklar taýýar, yzyna gaýtarmak meýilnamasy bar
  • Changelog, migrasiýa gollanmasy we hyzmatdaşlara iberilmegi

13) Antipatternler

Prod-hyzmatlara/bazalara "gizlin" degýän Sandbox.
stage/sandbox-da hakyky kartoçka/pasport maglumatlary.
Webhuksyz/retrajsyz simulýatorlar - diňe "bagtly ýol".
Biperwaýlygyň ýoklugy → tölegleriň/stawkalaryň dublikatlary.
Ähli hyzmatdaşlar üçin bir umumy HMAC-syr.
Çäklendirmeler we aç-açan 429/Retry-After ýok.


14) Kiçi snippetler

.env. sandbox (mysal)

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 bölek (sandbox serweri)

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

Pseudo idempotentlik kody

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

PSP simulýatorynyň triggerleri

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

15) Synlamak we SLO sandyk gutusy

Uptime sandbox API ≥ 99. 5% (integrasiýa penjiresi ýykylmaly däldir).
Webhooks p95 ≤ 3 adaty ýükde 2xx çenli.
Error budget 5xx şlýuzy ≤ 0. 1%.
Dok-portal elýeterlidir we şertnama bilen sinhronlaşdyrylýar.


16) Governance

Gurşawyň eýesi (SRE/Platform) we steward API (şertnamalar).
Breaking-üýtgeşmeler üçin RFC prosesi, Deprecation/Sunset senenamasy.
Köpçüligiň çägesi üçin aýratyn çäklendirmeler/kwotalar we "fair-use" bahasy.


Jemleme

Sandbox "bazanyň nusgasy" däl-de, işläp düzüjiler üçin önüm. Beriň: berk izolýasiýa, sintetiki maglumatlar, webhuklar we retralar bilen doly hukukly simulýatorlar, sidler we time-travel arkaly determinizm, fika baýdaklary we aç-açan çäkler. Hemme zady şertnamalar, gözegçilik we gözegçilik bilen baglanyşdyryň - we integrasiýalaryňyz çalt, howpsuz we öňünden aýdyp boljak we goýberilişleriňiz agyrysyz bolar.

Contact

Biziň bilen habarlaşyň

Islendik sorag ýa-da goldaw boýunça bize ýazyp bilersiňiz.Biz hemişe kömek etmäge taýýar.

Integrasiýany başlamak

Email — hökmany. Telegram ýa-da WhatsApp — islege görä.

Adyňyz obýýektiw däl / islege görä
Email obýýektiw däl / islege görä
Tema obýýektiw däl / islege görä
Habar obýýektiw däl / islege görä
Telegram obýýektiw däl / islege görä
@
Eger Telegram görkezen bolsaňyz — Email-den daşary şol ýerden hem jogap bereris.
WhatsApp obýýektiw däl / islege görä
Format: ýurduň kody we belgi (meselem, +993XXXXXXXX).

Düwmäni basmak bilen siz maglumatlaryňyzyň işlenmegine razylyk berýärsiňiz.