GH GambleHub

Barras de areia e ambientes de teste

TL; DR

Caixa de areia confiável = isolamento total, dados sintéticos/impessoais, simuladores de sistemas externos realistas, assentos previsíveis e time-travel, idempotidade integrada e webhooks, limites transparentes e métricas. O Prod não está disponível, as chaves estão a rolar, só as folhas de cheque.


1) Mapa dos ambientes e seus papéis

AmbienteAlvoAcessoDadosConfiabilidade
Local/DevDesenvolvimento rápidoEngenheirosSintéticos/ficstures mínimosBaixa
CI/TestTestes Unit/Integração/ContratualCI/CDCimentos automáticosMédia
Stage/Pre-prodMontagem final, regressoRestritoSnapshots anónimosAlta
Public SandboxParceiros/merchants externosGate + limitesApenas sintéticosMédia
ProdCombateSSO/acesso rigorosoReaisMáximo

Regra: sandbox ≠ prod. Qualquer ligação é através de simuladores unilaterais sem acesso a meios reais/jogos/dados pessoais.


2) Dados: sintético, anonimato, assentamento

Sintético padrão. Geradores de dados de passaporte/cartão, validadas mas não financeiras PAN (BIN de teste), pattern «vivo» de apostas e balanços.
Anonimato para estágio: Tocinização de identificadores, privacidade diferencial para unidades, remoção de combinações raras.
Cidos e determinismo, uma equipa, uma condição.

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

Time-travel: «hora» global do ambiente para testes de deadline/exportação.


3) Simuladores e braços (stubs)

Pagamentos/bancos/PSP

Auth/Capture/Refund/Payout со сценариями: `approved`, `declined_insufficient`, `3ds_required`, `timeout`, `duplicate`.
Webhooks PSP: assinados HMAC, retais, atrasos e «internet suja».

KYC/AML/Sanctions

Ответы: `clear`, `pep_match`, `sanction_hit`, `doc_mismatch`, `manual_review`.
Suporte à idempotação e rate limits como em prod.

Provedores de jogos/diretório

Lobby, fici, RTP/rounds - geração pseudosocial gerada por «pagamentos/falhas» para malas UX.

Opção: botão «rigor» do simulador (happy-path vs chaos).


4) Webhooks no banco de areia

Assinaturas HMAC (v1), cabeçalhos 'X-Event-Id', 'X-Timestamp', janela ≤ 5 minutos.
Retrai com backoff exponencial, DLQ e replay.
O console «redesenhar» e os logs de tentativa.

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

5) Idempotidade e determinismo

Todas as mutações tomam 'Idempotency-Key'.
Os simuladores armazenam o resultado por chave (TTL 24-72 h).
Seed Determinismo: Na mesma entrada, o mesmo resultado (para testes repetitivos).


6) Segurança e acesso

Isolamento de redes/VPC, segredos e domínios individuais ('sandbox. example. com`).
RBAC/ABAC: Os papéis «parceiro», «qa», «dave», os escopos de tokens são mínimos.
Rate-limits e quotas: participação justa per-tenant/chave compreendida por '429 '/' Retry-After'.
Segredos apenas em KMS/Vault; Rotatividade regular.
Impede pagamentos reais em nível de código/config (função-flag hard block).


7) API Gateway e observabilidade em sandbox

As mesmas políticas são OAuth2/OIDC/JWT, CORS, WAF, perfil DDoS.
Métricas: p50/p95/p99, 4xx/5xx, hit-rate limites, latency webhooks, hits idempotentes.
Logi/trailer: sem PII; corelação 'trace _ id'.
Dashboard Saúde de Areia, farmácia, filas de webhooks, erros de simulação.


8) Bandeiras fichas, versões e compatibilidade

Incluir o fichch no sandbox → estágio → prod.
SemVer para API; banner Deprecation/sunset em Swagger/Redoc cantigas de areia.
Persisted queries para vitrines GraphQL (se houver).


9) CI/CD и promotion

1. Build/Unit →

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

3. Integração contra simuladores de →

4. Estage regress (anon. shots) →

5. Canary в prod.

Folha de cheque de gate: abaixo no parágrafo 12.


10) Guiões UAT para parceiros (no banco de areia)

Pagamentos: auth/capture/refund/payout com webhooks e erros PSP.
KYC/AML: Todos os estados + escalação manual.
Idempotidade: Repito 'Idempotency-Key' → o mesmo resultado.
Rate-limit: processamento correto de '429'.
Janelas de tempo: exportação de tokens, 'Retry-After', 'time-travel'.
Webhooks: assinaturas/retrai/DLQ, replay manual e dedup.


11) Política de dados e privacidade

Nunca armazenar o real PAN/KYC-doc em sandbox/estágio.
Anónima: camuflagem, remoção de identificadores diretos, correlação sintética.
TTL armazenamento de logs e corpos de webhooks ≤ regulado.


12) Folhas de cheque

12. 1 Lançamento de uma nova caixa de areia

  • Rede/base/banco/armazenamento de objetos isolados
  • Segredos criados no KMS/Vault, acesso por papéis
  • Os simuladores PSP/KYC/jogos estão bloqueados e versionados
  • Swagger/Redoc + Postman coleção (sandbox endpoants)
  • Webhooks: HMAC, retry, DLQ, console replay
  • Perfis Rate/Quota, banners Deprecation/Sunset (se houver)
  • Dashboards e alertas (latency, 5xx, 429, DLQ)

12. 2 Promotion release (stage→prod)

  • Comprovação de desenho contratual (sem breaking)
  • P95/p99 de carga normal por estágio
  • Webhooks passaram por UAT, idempotação
  • As bandeiras fichas estão preparadas, o plano de reversão está disponível
  • Changelog, guia migratório e envio aos parceiros

13) Antipattern

Uma caixa de areia que «secretamente» toca serviços pró/base.
Dados reais de cartão/passaporte em estágio/sandbox.
Simuladores sem wabhooks/retrações - «trilha feliz» só.
Falta de idempotidade → duplicação de pagamentos/apostas.
Um segredo HMAC comum para todos os parceiros.
Não há limites ou transparência 429/Retry-After.


14) Mini-snippets

.env. sandbox (exemplo)

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 fatia (sandbox servidor)

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

Pseudocode de idempotação

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

Desencadeadores de simulador PSP

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

15) Observabilidade e barras de areia SLO

Uptime sandbox API ≥ 99. 5% (a vitrine das integrações não deve cair).
Webhooks p95 ≤ 3 com até 2xx com carga normal.
Error budget 5xx gateway ≤ 0. 1%.
O portal está disponível e sincronizado com o contrato.


16) Governance

O proprietário do ambiente (SRE/Plataforma) e da API steward (contratos).
Processo RFC para alterações de breaking, calendário Deprecation/Sunset.
Limites/quotas individuais e «fair-use» para uma caixa de areia pública.


Currículos

A caixa de areia é um produto para desenvolvedores, não uma cópia da base de dados. Dê-lhe: isolamento rigoroso, dados sintéticos, simuladores completos com webhooks e retrações, determinismo através de assentos e time-travel, bandeiras fichas e limites transparentes. Assine todos os contratos, observabilidade e governance - e suas integrações serão rápidas, seguras e previsíveis, e seus lançamentos serão indolores.

Contact

Entrar em contacto

Contacte-nos para qualquer questão ou necessidade de apoio.Estamos sempre prontos para ajudar!

Iniciar integração

O Email é obrigatório. Telegram ou WhatsApp — opcionais.

O seu nome opcional
Email opcional
Assunto opcional
Mensagem opcional
Telegram opcional
@
Se indicar Telegram — responderemos também por lá.
WhatsApp opcional
Formato: +indicativo e número (ex.: +351XXXXXXXXX).

Ao clicar, concorda com o tratamento dos seus dados.