GH GambleHub

サンドボックスとテスト環境

TL;DRについて

堅牢なサンドボックス=完全な分離、合成/非人格的データ、外部システムの現実的なシミュレータ、予測可能な側面とタイムトラベル、組み込みのidempotencyとwebhook、透明な限界とメトリクス。食べ物-手の届かない、キー-掘削、プロモーション-のみチェックリストに。


1)環境マップとその役割

環境についてPurposeアクセスデータ信頼性について
ローカル/開発迅速な開発エンジニア合成/最小フィクション低(Low)
CI/テストユニット/インテグレーション/契約テストCI/CDオートサイド平均(Average)
ステージ/プリプロッド最終アセンブリ、回帰限定された匿名化されたスナップショットHigh(ハイ)
パブリックサンドボックス外部パートナー/商人ゲート+制限合成成分のみ平均(Average)
プロド(Prod)戦うことSSO/厳密なアクセスReal(リアル)ほとんどの場合

ルール:サンドボックス≠ prod。任意の接続-実際の手段/ゲーム/個人データにアクセスすることなく、片道シミュレータを介して。


2)データ: 合成、匿名化、座っていること

デフォルトの合成。パスポート/カードデータジェネレータ、有効ですが、非金融PAN (テストBIN)、レートと残高のライブパターン。
ステージの匿名化:識別子のトークン化、集計の差分プライバシー、まれな組み合わせの削除。
Sidsとdeterminism: 1つのチーム-1つの状態。

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

タイムトラベル:期限/有効期限テストの環境のグローバル「時間」。


3)シミュレーターおよびプラグ(スタブ)

支払い/銀行/PSP

Auth/Capture/Refund/Payout сценариями: 'approved'、 'decred_insufficient'、 '3ds_required'、 'timeout'、 'duplicate'。
PSP webhooks: HMAC署名、レトライ、遅延と「汚いインターネット」。

KYC/AML/制裁

補足:'clear'、 'pep_match'、 'anction_hit'、 'doc_mismatch'、 'manual_review'。
prodのようにidempotencyとrate limitsをサポートします。

ゲームプロバイダ/カタログ

ロビー、機能、RTP/ラウンド-疑似ランダム生成、UXケースの「支払い/失敗」を制御します。

オプション:シミュレータ「severity」スイッチ(happy-path vs chaos)。


4)サンドボックスのWebhooks

HMAC署名(v1)、ヘッダ'X-Event-Id'、 'X-Timestamp'、ウィンドウ≤ 5分。
指数関数的なバックオフ、DLQ、リプレイでリトレイします。
コンソール「再送」と試行ログ。

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

5) Idempotenceおよびdeterminism

すべての変異は'Idempotency-Key'を受け入れる。
シミュレータは、結果をキーで保存します(TTL 24-72 h)。
「シード決定論」:同じ入力で-同じ結果(繰り返し可能なテストの場合)。


6)セキュリティとアクセス

ネットワーク分離/VPC、個々の秘密とドメイン('sandbox。例を示します。com')。
RBAC/ABAC:「パートナー」、「qa」、 「dev」、トークンのospreysの役割は最小限です。
レート制限とクォータ:テナント/キーごとのフェアシェア、わかりやすい'429'/'再試行'。
KMS/Vaultでのみ秘密;規則的な回転。
コード/設定レベル(フィーチャーフラグのハードブロック)での実際の支払いの禁止。


7)サンドボックスのAPIゲートウェイと観測可能性

同じポリシー:OAuth2/OIDC/JWT、 CORS、 WAF、 DDoSプロファイル。
メトリクス:p50/p95/p99、 4xx/5xx、ヒットレート制限、レイテンシーWebフック、idempotentヒット。

ログ/トレイル: PIIなし;相関'trace_id'

ダッシュボード「Sandbox Health」:アップタイム、Webhookキュー、シミュレータエラー。


8)特徴の旗、版および両立性

sandbox→stage→prodに機能を含める。
APIのためのSemVer;Swagger/Redocサンドボックスの廃止/日没バナー。
GraphQLストアフロントの持続クエリ(もしあれば)。


9) CI/CDプロモーション

1.ビルド/ユニット→

2.コントラクト/モックテスト(OpenAPI/Protobuf/GraphQL SDL)→

3.統合とシミュレータの比較→

4.ステージ回帰(anon。スナップショット)→

5.キャナリー・プロッド。

ゲートチェックリストプロモーション:第12条の下にあります。


10)パートナー向けUATスクリプト(サンドボックス化)

支払い:WebhookおよびPSPエラーによる認証/キャプチャ/払い戻し/支払い。
KYC/AML:すべてのステータス+手動エスカレーション。
Idempotency:繰り返し'Idempotency-Key'→同じ結果。
Rate-limit: '429'の正しい処理。
時間ウィンドウ:トークンの有効期限、'Retry-After'、タイムトラベルの場合。
Webhook: 署名/リトレイ/DLQ、手動リプレイとデッドアップ。


11)データポリシーとプライバシー

サンドボックス/ステージに本物のPAN/KYCドックを保管しないでください。
匿名化:マスキング、直接識別子の除去、合成相関。
ログとWebhook本体のTTLストレージ≤ルーチンです。


12)チェックリスト

12.1新しいサンドボックスを立ち上げる

  • 隔離されたネットワーク/ベース/キャッシュ/オブジェクトストレージ
  • KMS/Vaultで作成された秘密、役割によるアクセス
  • PSP/KYC/ゲームシミュレータのスペルアウトとバージョン管理
  • Swagger/Redoc+Postmanコレクション(サンドボックスエンドポイント)
  • Webhooks: HMAC、リトライ、DLQ、リプレイコンソール
  • レート/クォータプロファイル、減価償却/日没バナー(もしあれば)
  • ダッシュボードとアラート(レイテンシー、5xx、 429、 DLQ)

12.2プロモーションリリース(ステージ→prod)

  • 契約差分チェック(破損なし)
  • ステージでp95/p99を正常にロードする
  • WebhookはUAT、 idempotency okを受けました
  • フィーチャーフラグが用意されており、ロールバックプランがあります
  • Changelog、移行ガイド、パートナーへのメール送信

13) Antipatterns

「密かに」プロッドサービス/データベースに触れるサンドボックス。
ステージ/サンドボックス内の実際のカード/パスポートデータ。
Webhook/Retreatsのないシミュレータは「幸せな道」のみです。
idempotence→duplicateの支払/賭け無し。
すべてのパートナーに共通のHMAC秘密が1つあります。
制限や透明な429/Retry-Afterはありません。


14)ミニスニペット

。env。sandbox(例)

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フラグメント(サンドボックスサーバー)

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

Idempotency擬似コード

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

PSPシミュレータトリガー

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

15)サンドボックスの観察可能性およびSLO

アップタイムサンドボックスAPI ≥ 99。5%(統合のショーケースは落ちるべきではない)。
通常の負荷でWebhooks p95 ≤ 3 sから2xxに。

ゲートウェイのエラー予算5xx ≤ 0。1%.

ドッキングポータルが利用可能で、契約と同期しています。


16)ガバナンス

環境所有者(SRE/Platform)とスチュワードAPI (contract)。
変更を破るためのRFCプロセス、廃止/日没カレンダー。
制限/クォータと公衆サンドボックスの「公正使用」価格を分離します。


履歴書のサマリー

サンドボックスは開発者向けの製品であり、ベースの「コピー」ではありません。"Give:厳格な分離、合成データ、Webhookとレトラを備えた本格的なシミュレータ、側面と時間移動による決定論、特徴フラグと透明限界。すべてを契約、オブザビリティ、ガバナンスと結びつけることで、統合は迅速、安全、予測可能になり、痛みのないリリースになります。

Contact

お問い合わせ

ご質問やサポートが必要な場合はお気軽にご連絡ください。いつでもお手伝いします!

統合を開始

Email は 必須。Telegram または WhatsApp は 任意

お名前 任意
Email 任意
件名 任意
メッセージ 任意
Telegram 任意
@
Telegram を入力いただいた場合、Email に加えてそちらにもご連絡します。
WhatsApp 任意
形式:+国番号と電話番号(例:+81XXXXXXXXX)。

ボタンを押すことで、データ処理に同意したものとみなされます。