GH GambleHub

Piaskownice i środowiska badawcze

TL; DR

Solidna skrzynka piaskowa = kompletna izolacja, dane syntetyczne/bezosobowe, realistyczne symulatory systemów zewnętrznych, przewidywalne boki i podróże w czasie, wbudowana idempotencja i haki webowe, przezroczyste granice i mierniki. Jedzenie - poza zasięgiem, klucze - kopanie, promocja - tylko na listach kontrolnych.


1) Mapa środowiska i ich role

Środowisko naturalneCelDostępDaneNiezawodność
Lokalne/DevSzybki rozwójInżynierowieSyntetyka/minimalne fikcjeNiski
CI/TestBadanie jednostkowe/integracyjne/kontraktoweCI/CDAutozydyŚrednia
Etap/PreprdMontaż końcowy, regresjaOgraniczoneAnonimizowane migawkiWysoka
Piaskownica publicznaPartnerzy/handlowcy zewnętrzniBrama + limityWyłącznie syntetykiŚrednia
ProdWalkaSSO/ścisły dostępRzeczywistyNajwyżej

Reguła: piaskownica Każde połączenie - poprzez jednokierunkowe symulatory bez dostępu do rzeczywistych środków/gier/danych osobowych.


2) Dane: syntetyka, anonimizacja, siedzenie

Domyślna syntetyka. Generatory danych paszportowych/kart, ważne, ale niefinansowe PANS (test BIN), żywe wzory stawek i sald.
Anonimizacja dla etapu: tokenizacja identyfikatorów, prywatność różnicowa dla agregatów, usuwanie rzadkich kombinacji.
Sids i determinizm: jeden zespół - jeden stan.

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

Podróż w czasie: globalna „godzina” środowiska w przypadku testów terminowych/testów wygaśnięcia.


3) Symulatory i wtyczki (stubs)

Płatności/Banki/PSP

Auth/Capture/Refundacja/Payout сменарима: „zatwierdzony”, „declined _ insufficient”, „3ds _ required”, „timeout”, „duplicate”.
Haki internetowe PSP: HMAC podpisane, retrai, opóźnienia i „brudny internet”.

KYC/AML/Sankcje

Ответа: 'clear', 'pep _ match', 'sanction _ hit', 'doc _ mismatch', 'manual _ review'.
Wsparcie idempotencji i limitów stawek, jak w prod.

Dostawcy gier/Katalog

Lobby, funkcja, RTP/rundy - pseudo-losowe generowanie, kontrolowane „płatności/awarie” dla przypadków UX.

Opcja: przełącznik „ciężkości” symulatora (happy-path vs chaos).


4) Haki w piaskownicy

Podpisy HMAC (v1), nagłówki "X-Event-Id'," X-Timestamp ", okno ≤ 5 minut.
Przekłada się wykładniczym backoff, DLQ i powtórzyć.
Konsola „resend” i dzienniki prób.

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

5) Idempotencja i determinizm

Wszystkie mutacje akceptują 'Idempotency-Key'.
Symulatory przechowują wynik za pomocą klawisza (TTL 24-72 h).
„determinizm nasion”: z tym samym wejściem - ten sam wynik (dla powtarzalnych testów).


6) Bezpieczeństwo i dostęp

Izolacja sieci/VPC, indywidualne tajemnice i domeny ('piaskownica. przykład. com ").
RBAC/ABAC: role „partner”, „qa”, „dev”, ospreys żetonów są minimalne.
Limity stawek i kwoty: sprawiedliwy udział na jednego najemcę/kluczowego, zrozumiały „429 ”/„ Retry-After”.
Tajemnice tylko w KMS/Vault; regularny obrót.
Zakaz płatności rzeczywistych na poziomie kodu/konfiguracji (funkcja-flag hard block).


7) Brama API i obserwowalność w piaskownicy

Te same zasady: OAuth2/OIDC/JWT, CORS, WAF, profil DDoS.
Metryki: p50/p95/p99, 4xx/5xx, limity prędkości trafienia, haki z opóźnieniem, hity idempotentne.
Kłody/szlaki: brak PII; korelacja 'trace _ id'.
Deska rozdzielcza „Sandbox Health”: uptime, kolejki webhook, błędy symulatora.


8) Flagi funkcji, wersje i kompatybilność

Włączenie funkcji w piaskownicy → etap → prod.
SemVer dla API; Deprecacja/baner zachód słońca w piaskownicach Swagger/Redoc.
Ciągłe zapytania dotyczące sklepów GraphQL (jeśli istnieją).


9) CI/CD - promocja

1. Budowa/jednostka →

2. Testy kontraktowe/modelowe (OpenAPI/Protobuf/GraphQL SDL) →

3. Integracja kontra symulatory →

4. Regresja etapu (anon. migawki) →

5. Kanaryjski prod.

Promocja listy kontrolnej: poniżej w § 12.


10) Skrypty UAT dla partnerów (piaskownica)

Płatności: auth/capture/refund/payout z hakami webowymi i błędami PSP.
KYC/AML: wszystkie statusy + ręczna eskalacja.
Idempotencja: powtarzane 'Idempotency-Key' → ten sam wynik.
Limit stawki: Prawidłowa obsługa '429'.
Okna czasowe: wygaśnięcie żetonów, 'Retry-After', przypadki podróży w czasie.
Haki internetowe: podpisy/przekładki/DLQ, ręczna powtórka i dedup.


11) Polityka i prywatność danych

Nigdy nie przechowywać prawdziwych doków PAN/KYC w piaskownicy/scenie.
Anonimizacja: maskowanie, usuwanie bezpośrednich identyfikatorów, korelacja syntetyczna.
TTL przechowywanie kłód i nadwozi webhook ≤ rutynowe.


12) Listy kontrolne

12. 1 Uruchomienie nowej piaskownicy

  • Izolowana sieć/baza/pamięć podręczna/magazynowanie obiektów
  • Tajemnice utworzone w KMS/Vault, dostęp według roli
  • Symulatory PSP/KYC/gry są wypisywane i wersjonowane
  • Kolekcja Swagger/Redoc + Postman (punkty końcowe piaskownicy)
  • Haki internetowe: HMAC, retry, DLQ, konsola replay
  • Stopa/Profile kwot, Deprecacja/Banery o zachodzie słońca (jeśli istnieją)
  • Deski rozdzielcze i wpisy (latency, 5xx, 429, DLQ)

12. 2 Promocja (etap → prod)

  • Kontraktowe kontrole różnicowe (bez łamania)
  • Obciążenie p95/p99 normalne na etapie
  • Webhaki przeszedł UAT, idempotency ok
  • Flag funkcji są przygotowane, istnieje plan rollback
  • Changelog, przewodnik migracji i mailing do partnerów

13) Antypattery

Piaskownica, która „potajemnie” dotyka usług/baz danych prod.
Prawdziwe dane karty/paszportu w scenie/piaskownicy.
Symulatory bez haków/rekolekcji to tylko „szczęśliwa ścieżka”.
Brak idempotencji → zduplikowane płatności/zakłady.
Jeden wspólny sekret HMAC dla wszystkich partnerów.
Nie ma żadnych ograniczeń ani przejrzystych 429/Retry-After.


14) Mini snajpery

.env. piaskownica (przykład)

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

Fragment OpenAPI (serwer piaskownicy)

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

Pseudokod idempotencji

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

Wyzwalacze symulatorów PSP

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

15) Obserwowalność piaskownicy i SLO

Uptime piaskownica API ≥ 99. 5% (prezentacja integracyjna nie powinna spaść).
Haki p95 ≤ 3 s do 2xx przy normalnym obciążeniu.
Budżet błędu 5xx bramy ≤ 0. 1%.
Portal dokujący jest dostępny i zsynchronizowany z umową.


16) Zarządzanie

Właściciel środowiska (SRE/Platform) i steward API (kontrakty).
Proces RFC do łamania zmian, deprecacja/kalendarz zachód słońca.
Oddzielne limity/kwoty i ceny „fair-use” dla publicznej skrzynki piaskowej.


Wznów streszczenie

Piaskownica jest produktem dla programistów, a nie "kopią bazy. "Daj: ścisła izolacja, dane syntetyczne, pełnoprawne symulatory z hakami i przekładkami, determinizm po bokach i podróży w czasie, flagi funkcji i przejrzyste ograniczenia. Powiązaj wszystko z umowami, obserwowalnością i zarządzaniem - a Twoje integracje staną się szybkie, bezpieczne i przewidywalne, a wydają bezbolesne.

Contact

Skontaktuj się z nami

Napisz do nas w każdej sprawie — pytania, wsparcie, konsultacje.Zawsze jesteśmy gotowi pomóc!

Rozpocznij integrację

Email jest wymagany. Telegram lub WhatsApp są opcjonalne.

Twoje imię opcjonalne
Email opcjonalne
Temat opcjonalne
Wiadomość opcjonalne
Telegram opcjonalne
@
Jeśli podasz Telegram — odpowiemy także tam, oprócz emaila.
WhatsApp opcjonalne
Format: kod kraju i numer (np. +48XXXXXXXXX).

Klikając przycisk, wyrażasz zgodę na przetwarzanie swoich danych.